本文主要是介绍SqliteOpenHelper封装——DBManager模板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Android平台上,集成了一个嵌入式关系型数据库—SQLite。如果你想要开发 Android 应用程序,一定需要在 Android 上存储数据,使用SQLite 数据库是一种非常好的选择。
下面介绍的基本使用:
是一个抽象类不能直接实例化,所以新建一个类DBOpenHelper继承自SQLiteOpenHelper :
- public class DBOpenHelper extends SQLiteOpenHelper {
- public DBOpenHelper(Context context) {
- super(context, "yhn.db", null, 1);
- }
- //数据库第一次创建时候调用,
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("create table user(uid integer primary key autoincrement, uname varchar(20), uaddress varchar(20))");
- }
- //数据库文件版本号发生变化时调用
- public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
- }
如果执行上边的代码,则会创建一个数据库文件xx.db
数据库操作类:
- public class DBDao {
- DBOpenHelper dbOpenHelper;
- public DBDao(Context context){
- this.dbOpenHelper=new DBOpenHelper(context);
- }
- /**
- * 添加一条数据
- * @param user
- */
- public void save(User user){
- SQLiteDatabase db=dbOpenHelper.getWritableDatabase();
- db.execSQL("insert into user(uname,uaddress) values(?,?)", new Object[]{user.getUname(),user.getUaddress()});
- db.close();
- }
- /**
- * 删除一条数据
- * @param uid
- */
- public void delete(Integer uid){
- SQLiteDatabase db=dbOpenHelper.getWritableDatabase();
- db.execSQL("delete from user where uid=?", new Object[]{uid});
- db.close();
- }
- /**
- * 更新一条数据
- * @param user
- */
- public void update(User user){
- SQLiteDatabase db=dbOpenHelper.getWritableDatabase();
- db.execSQL("update user set uname=?,uaddress=? where uid=?", new Object[]{user.getUname(),user.getUaddress(),user.getUid()});
- db.close();
- }
- /**
- * 查找一条数据
- * @param uid
- */
- public User find(Integer uid){
- SQLiteDatabase db=dbOpenHelper.getReadableDatabase();
- Cursor cursor =db.rawQuery("select * from user where uid=?", new String[]{uid.toString()});
- if(cursor.moveToFirst()){
- int uid2=cursor.getInt(cursor.getColumnIndex("uid"));
- String uname=cursor.getString(cursor.getColumnIndex("uname"));
- String uaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
- User user=new User();
- user.setUid(uid2);
- user.setUname(uname);
- user.setUaddress(uaddress);
- return user;
- }
- cursor.close();
- return null;
- }
- /**
- * 分页查找数据
- * @param offset 跳过多少条数据
- * @param maxResult 每页多少条数据
- * @return
- */
- public List<User> getScrollData(int offset, int maxResult){
- List<User>users=new ArrayList<User>();
- SQLiteDatabase db=dbOpenHelper.getReadableDatabase();
- Cursor cursor =db.rawQuery("select * from user order by uid asc limit ?,?", new String[]{String.valueOf(offset), String.valueOf(maxResult)});
- while(cursor.moveToNext()){
- int uid2=cursor.getInt(cursor.getColumnIndex("uid"));
- String uname=cursor.getString(cursor.getColumnIndex("uname"));
- String uaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
- User user=new User();
- user.setUid(uid2);
- user.setUname(uname);
- user.setUaddress(uaddress);
- users.add(user);
- }
- return users;
- }
- /**
- * 获取数据总数
- * @return
- */
- public long getCount(){
- SQLiteDatabase db=dbOpenHelper.getReadableDatabase();
- Cursor cursor =db.rawQuery("select count(*) from user", null);
- cursor.moveToFirst();
- long reslut=cursor.getLong(0);
- return reslut;
- }
- }
示例:向数据库中添加一条数据
- DBDao dbDao=new DBDao(this);
- User user=new User();
- user.setUname("qixiaohu");
- user.setUaddress("chengdu");
- dbDao.save(user);
PC上管理SQLite数据库的方法:
上边添加数据后可以看到数据添加成功:
这篇关于SqliteOpenHelper封装——DBManager模板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!