SQLiteOpenHelper操作数据库

一:新建一个类继承SQLiteOpenHelper

public class MyOpenHelper extends SQLiteOpenHelper {
	 /*
    * 构造方法中
    * 参数context表示用来打开或创建数据据的上下文;
    * name指定了数据库文件;factory用来创建cursor对象,
    * 如果使用默认的factory,则将该参数设置为null;
    * version表示数据库的版本号,该版本号从1开始依次递增。
    * */
	public MyOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
	/*
	* 在派生的自类中需要重写onCreate()方法。
	* 当数据库文件被首次创建时会调用该函数,
	* 也就是在调用调用SQLiteOpenHelper类的getWritableDatabase()或者getReadableDatabase()时会调用该方法。
	* 在该方法中主要完成数据库表的初始化(创建和记录的添加)。 
	* */
      @Override
    public void onCreate(SQLiteDatabase db) {
        System.out.println(123456789);
    }

	/*
	* 当数据库需要更新的时候调用该方法。可以通过该方法实现删除表、添加表或者更新表。
	* */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        System.out.println(123);
        db.execSQL("CREATE table student(id Interger primary key autoincrement,name varchar(20),age int)");
    }
}

二:在Activity中

 MyOpenHelper  myOpenHelper = new MyOpenHelper(getApplicationContext());
 SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();
 writableDatabase.execSQL();
 writableDatabase.close();

2.2 创建记录
创建记录的方法与创建表的方法类似,首先构建SQL语句,之后执行该语句。

String insertSql = “insert into user(username, password) values(?,?)”;
DB.execSQL(insertSql, new String[]{“yang”, “123”});

以上代码的功能是在“user”表中插入了一个记录,该记录的username域的值是“yang”,“password”域的值是“123”。

2.3 删除记录
String deleteSql = “delete from user where username=?”;
DB.execSQL(deleteSql, new String[]{“yang”});

以上代码的作用是在user表中删除用户名为“yang”的记录。

2.4 修改记录
String updateSql = “update user set username=?,password=? where _id=?”;
DB.execSQL(updateSql, new String[]{“yang”, “456”, “0”});

以上代码的作用是将user表中ID为0的记录的”username”域的值设置为“yang”,“password”域得值设置为“456”。

2.5 查询记录
与以上操作记录使用的方法不同,查询记录时使用的是SQLiteDatabase类的rawQuery()方法。该方法的格式为

public Cursor rawQuery(String sql,
String[] selectionArgs)

其中,参数sql指定了查询记录的SQL语句;selectionArgs指定了sql中包含的?所代表的值,如果sql中不包含?,则该参数可以设置为null。rawQuery()方法的返回值是查询到的结果,其类型为Cursor。

String selectSql = “select _id, username, password from user”;
Cursor cursor = DB.rawQuery(selectSql, null);

以上代码的作用是查询表user中的所有记录,并将记录保存在cursor中。
2.6 关闭数据库
调用SQLiteDatabase类的close()方法关闭打开的数据库。
DB.close();

发布了16 篇原创文章 · 获赞 0 · 访问量 838

猜你喜欢

转载自blog.csdn.net/weixin_45830683/article/details/103323939
今日推荐