学习安卓开发中,做一下代码笔记。在安卓下如何使用SQLite数据库
- 第一步
- :创建自己的SQLHelper类继承与SQLiteOpenHelper
public class MySQLiteHelper extends SQLiteOpenHelper { //创建构造函数,有很多参数:Context context 上下文,String name 数据库的名字XX.db,factory 游标,一般为空具体用法可查API SQLiteDatabase.CursorFactory这个接口,int version 这是规定你的数据库版本号,一般从1开始,由于demo数据库名称和版本号我已经固定,所以我没有在继承的构造函数中传入这些参数而是直接在super()中写成固定的,后期如果自己有进一步的封装可以自己添加。 public MySQLiteHelper (Context context) { super(context, "note.db", null, 1); } //重写以下两个方法 @Override //该方法会在第一创建数据库时调用,一般用来填写数据库创建的语句,直接用传入的sqLiteDatabase对象的方法进行SQL语句创建数据库。 public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table user (_userid integer primary key autoincrement,note vachar(1000),time TimeStamp NOT NULL DEFAULT (datetime('now','localtime')))"); } //该方法会在数据库版本号发生升级的调用,也就是构造函数里面参数的最后一项更改为更高的版本号以后会调用该方法,可以自定义一些语句,比如数据库结构的变更等。 @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
第一步代码
- 第二步
- 在创建好OpenHelper类以后,我们就可以通过该类创建数据库了,可是创建以后应该如和对数据库进行增删改查的操作呢?
- 我们可以再创建一个自定义DAO类用来对数据进行操作
//自定义一个类 public class MyDao{ private MySQLiteHelper mySQLiteHelper; private Context context; //创建构造函数传入Context对象,以便调用已经写好的MySQLiteHelper类 public MyDao(Context context,MySQLiteHelper mySQLiteHelper){ this.context=context; this.mySQLiteHelper=mySQLiteHelper; } public boolean add() { //通过getReadableDatabase()方法获取SQLiteDataBase对象,注意获取方式不止一种可以查看API SQLiteDataBase db=mySQLiteHelper.getReadableDatabase(); //调用db的insert方法,该方法有以下参数(String table 表名字,nullColumnHack若插入失败 //填补的值,一般填NULL,contentValues这是一个需要插入数据的封装对象,实际上是传入一个Map<String //列名,String值>) ContentValues contentValues=new ContentValues(); contentValues.put("name","张三");//准备数据并传入,可以传入Bean对象。 //该方法返回一个long为-1时插入失败 long reslut= db.insert("user",null,contentValues); if(reslut!=-1) return true; return false; } //剩下的都大差不差可以查API 完成!主要注意各个方法传入的参数以及返回的参数即可 public boolean delect() { SQLiteDataBase db=mySQLiteHelper.getReadableDatabase(); //db.delect("表名",条件(?),?号占位符的具体值一般是数组new String[]{""}); update(String table, ContentValues values, String whereClause, String[] whereArgs) } public boolean update() { SQLiteDataBase db=mySQLiteHelper.getReadableDatabase(); db.update("表名",要更新的列,更新的条件(?),?号占位符的具体值一般是数组new String[]{""}) } public boolean query(){ SQLiteDataBase db=mySQLiteHelper.getReadableDatabase(); db.query("表名",要查的列名查询所有是传null,条件(?),?号占位符的具体值一般是数组new String[]{""}); }
DAO类
-
这两个类创建好以后,在其他文件中进行调用即可,新手才学习很多地方是伪代码。