本人项目中,感觉用到数据库比较少,一般存储都是本地存储或者,存到缓存文件中了,数据库的话,感觉也是用郭神的数据库比较多一点,现在有机会学习下这个Android自带 SQLite数据库,就进行下研究,希望对以后的开发工作有帮助
创建数据库文件,集成自SQLiteOpenHelper
重写onCreate,onUpgrade方法,并且重新写自己的构造方法
public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
在MainActivity中写
myOpenHelper的构造方法,
并且
myOpenHelper.getReadableDatabase();
获取数据库
在数据库的onCreate方法中写建表语句
String sql="CREATE TABLE IF NOT EXISTS Student(" +
"_id INTEGER NOT NULL," +
"name varchar(255) NOT NULL," +
"age INTEGER not null," +
"address varchar(255) not null," +
"primary key(_id)" +
");";
db.execSQL(sql);
Log.i("SQLITE","创建成功");
通过Android Device Monitor得到数据库文件
全部代码
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第四个参数,版本号
MyOpenHelper myOpenHelper=new MyOpenHelper(getApplicationContext(),"mydb",null,1);
//两种获取数据库的方法
myOpenHelper.getReadableDatabase();
// myOpenHelper.getWritableDatabase();
}
}
MyOpenHelper
public class MyOpenHelper extends SQLiteOpenHelper {
public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//数据库第一次创建的时候会调用此方法,一般将见表工作,放在此方法中
@Override
public void onCreate(SQLiteDatabase db) {
String sql="CREATE TABLE IF NOT EXISTS Student(" +
"_id INTEGER NOT NULL," +
"name varchar(255) NOT NULL," +
"age INTEGER not null," +
"address varchar(255) not null," +
"primary key(_id)" +
");";
db.execSQL(sql);
Log.i("SQLITE","创建成功");
}
//数据库升级的时候使用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}