packagecom.example.chenshuai.test321;importandroid.content.ContentValues;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.view.View;importandroid.widget.Toast;public class Activitydatashujuku extendsAppCompatActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activitydatashujuku);
}/*操作数据库有两个非常重要的类:SQLiteDatabase和SQLiteOpenHelper
* 1.SQLiteDatabase的实例便代表了SQLite数据库,通过SQLiteDatabase的一些常用方法,可以执行SQL语句,
* 对数据库进行添加、删除、更新、查找和修改等操作
* 2.SQLiteOpenHelper是一个辅助类,主要负责创建和打开数据库以及对数据库的版本进行管理。
* SQLiteOpenHelper是一个抽象类,需要继承它并实现它的几个回调函数
**/
/*1.写内部类 继承SQLiteOpenHelper
2.生成实现方法
(1)创建 public void onCreate(SQLiteDatabase db) {
(2)升级 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
3.生成器 调用父类的构造方法
public DBHelper(String name, int version) {
4.点击事件 调用构造方法DBHelper 创建 连接数据库*/
//内部类继承 需要自己生成构造器
class DBHelper extendsSQLiteOpenHelper
{//构造方法//name 数据库名//version 自己定义的数据库的版本号
public DBHelper(String name, intversion) {//需要调用父类的构造方法 写在第一行
super(Activitydatashujuku.this, name, null, version);
}//实现方法 是一个回调方法//在创建数据库时调用//什么时候创建数据库:连接数据库的时候,如果数据库文件不存在//只调用一次
@Overridepublic voidonCreate(SQLiteDatabase db) {//1.创建数据库的语句//构造建表语句
String creaTTable = "create table user (_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,name varchar,age int)";
db.execSQL(creaTTable);//2.初始化参数 ContentValues
ContentValues cv = newContentValues();
cv.put("name","tom");
cv.put("age", "20");//返回id long型 如果不成功返回-1//1-表名//2-空列的默认值//3-字段和值的key/value集合
Long l = db.insert("user", null, cv);
Toast.makeText(Activitydatashujuku.this, "id="+l, Toast.LENGTH_LONG).show();//2.初始化数据
}//升级数据库
@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {
}
}//创建数据库
public voidchuangjiansjkonclick(View view)
{//创建 实现工具类
DBHelper dh = new DBHelper("test.db",1);//连接数据库 获取数据库实例//getWritableDatabase() 数据写满会报错//getReadableDatabase() 数据写满不会报错
SQLiteDatabase sd =dh.getWritableDatabase();