本人项目中,感觉用到数据库比较少,一般存储都是本地存储或者,存到缓存文件中了,数据库的话,感觉也是用郭神的数据库比较多一点,现在有机会学习下这个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();
获取数据库
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,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) {
}
}