Day13持久化存储——SQLite数据库存储(使用contentValue封装)

Day13持久化存储——SQLite数据库存储(使用contentValue封装),第1张

概述ContentValues  在SQLiteDatabase类之中也专门提供了insert()、update()、delete()、query()等方法,但是在使用这些方法进行数据库 *** 作的时候,所有的数据必须使用ContentValues类进行封装。  android.content.ContentValues的功能与HashMap类的功能类似,都是采用“key=value”的形式保存数据,唯一不

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封装)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存