ContentValues
在sqliteDatabase类之中也专门提供了insert()、update()、delete()、query()等方法,但是在使用这些方法进行数据库 *** 作的时候,所有的数据必须使用ContentValues类进行封装。
androID.content.ContentValues的功能与HashMap类的功能类似,都是采用“key=value”的形式保存数据,唯一不同的是在ContentValues类中所设置的key都是String型的数据,而所设置的value都是基本数据类型的包装类。
package com.example.demotest;import androID.content.ContentValues;import androID.content.Context;import androID.database.sqlite.sqliteDatabase;import androID.database.sqlite.sqliteOpenHelper;public class MyDatabaseHelper extends sqliteOpenHelper { private static final String DATABASEname = "mldn.db" ; // 数据库名称 private static final int DATABASEVERSION = 1 ; // 数据库名称 private static final String tablename = "mytab" ; // 数据表名称 public MyDatabaseHelper(Context context) { super(context,DATABASEname,null,DATABASEVERSION);// 调用父类构造 } @OverrIDe public voID onCreate(sqliteDatabase db) { // 创建数据表 String sql = "CREATE table " + tablename + " (" + "ID INTEGER PRIMARY KEY," + "name VARCHAR(50) NOT NulL," + "birthday DATE NOT NulL)";// SQL语句 db.execsql(sql) ; // 执行SQL语句 } @OverrIDe public voID onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { String sql = "DROP table IF EXISTS " + tablename ; // SQL语句 db.execsql(sql); // 执行SQL语句 this.onCreate(db); // 创建表 }// public voID insert(String name,String birthday) {// sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象// String sql = "INSERT INTO " + tablename + " (name,birthday) VALUES ('"// + name + "','" + birthday + "')"; // SQL语句// db.execsql(sql); // 执行SQL语句// db.close() ; // 关闭数据库 *** 作// }// public voID update(int ID,String name,String birthday) {// sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象// String sql = "UPDATE " + tablename + " SET name='" + name// + "',birthday='" + birthday + "' WHERE ID=" + ID; // SQL语句// db.execsql(sql); // 执行SQL语句// db.close() ; // 关闭数据库 *** 作// }// public voID delete(int ID) {// sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象// String sql = "DELETE FROM " + tablename + " WHERE ID=" + ID;// db.execsql(sql) ; // 执行SQL语句// db.close() ; // } public voID insert(String name,String birthday) { sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象 ContentValues cv = new ContentValues() ; // 定义ContentValues对象 cv.put("name",name) ; // 设置name字段内容 cv.put("birthday",birthday) ; // 设置birthday字段内容 db.insert(tablename,cv) ; // 增加 *** 作 db.close() ; // 关闭数据库 *** 作 } public voID update(int ID,String birthday) { sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象 String whereClause = "ID=?" ; // 更新条件 String whereArgs[] = new String[] {String.valueOf(ID)} ; // 更新ID ContentValues cv = new ContentValues() ; // 定义ContentValues对象 cv.put("name",birthday) ; // 设置birthday字段内容 db.update(tablename,cv,whereClause,whereArgs) ; // 更新 *** 作 db.close() ; // 关闭数据库 *** 作 } public voID delete(int ID) { sqliteDatabase db = super.getWritableDatabase(); // 取得数据库 *** 作对象 String whereClause = "ID=?" ; // 删除条件 String whereArgs[] = new String[] {String.valueOf(ID)} ; // 删除ID db.delete(tablename,whereArgs) ; // 删除 *** 作 db.close() ; // 关闭数据库 *** 作 }}对于使用哪种方式, 从实际出发contentvalue更为标准,这样做的好处就是为以后的contentProvID关联,如果不使用 还是用SQL语句比较方便 总结
以上是内存溢出为你收集整理的Day13持久化存储——SQLite数据库存储(使用contentValue封装)全部内容,希望文章能够帮你解决Day13持久化存储——SQLite数据库存储(使用contentValue封装)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)