Android 五大数据存储 (最实用的开发详解) 四 SQLite数据库存储的使用

有很多人觉得我们在本地创建一个数据库,有点小题大做,但是个人感觉一个APP有时候还是有必要配一个数据库的,易于有效的管理数据,我写项目的时候用户基本的信息和APP的配置信息基本都是存储在本地数据库里,今天我们这里分享下直接写的SQLite的方法,另外有种比较简便的方式就是三方框架了 下面有分享的链接,有兴趣的小伙伴可以了解下

好用的三方框架GreenDao的使用点击查看

第一步. 创建MyOpenHelper 继承SQLiteOpenHelper

public class MyOpenHelper extends SQLiteOpenHelper {
	//定义表
	private String user = "create table User(id integer primary key autoincrement,"+ "name varchar(80)";

	public MyOpenHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
	//执行SQL语句 创建表
		db.execSQL(user);
	}

	//用于数据库更新
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		switch (oldVersion) {//用老版本的要往上走一级
		case 1:
			db.execSQL(user);
		}
	}

}

第二步. 创建DB操作工具类

public class MyDB {
	private static MyDB chainDB;
	private static SQLiteDatabase db;
	private static Context mContext;
	private static String tablename;

	private MyDB(Context context) {
		MyOpenHelper helper = new MyOpenHelper(context,"User.db", null, 1);
		db = helper.getWritableDatabase();
		mContext = context;
	}
	/**
	 * 增加
	 */
	public void saveUser(User user) {
		if (user == null) {
			return;
		}
		try {
			ContentValues values = new ContentValues();
			values.put("name", tz.getName);
			db.insert("User", null, values);
		} catch (Exception e) {
			//添加失败
		}
	}
	/**
	 * 查询所有
	 */
	public static List<User> getAllUser() {
		List<User> list = new ArrayList<>();

		Cursor cursor = db.rawQuery("select  * from " + tablename, null);
		while (cursor.moveToNext()) {
		User user=User();
		user.setId(cursor.getInt(cursor.getColumnIndex("id")));
		user.setName(cursor.getString(cursor.getColumnIndex("name")));
		list.add(user);

		}
		return list;
	}
}

第二步. 初始化 调用

MyDB.getInstance(this);
MyDB.chainDB.getAllUser()

以上就是对SQLite的直接使用,这种操作有很多不便性就是SQL需要一个一个的去写,容易出错,不便于维护,安全性不太高,更多的还是建议大家使用三方的数据库框架,操作简单快捷

好用的三方框架GreenDao的使用点击查看

猜你喜欢

转载自blog.csdn.net/qq_28643195/article/details/107786840
今日推荐