在Android平台上,集成了一个嵌入式关系型数据库—SQLite。如果你想要开发 Android 应用程序,一定需要在 Android 上存储数据,使用SQLite 数据库是一种非常好的选择。

下面介绍的基本使用:

是一个抽象类不能直接实例化,所以新建一个类DBOpenHelper继承自SQLiteOpenHelper :

[java] view plain copy print ?
  1. publicclassDBOpenHelperextendsSQLiteOpenHelper{
  2. publicDBOpenHelper(Contextcontext){
  3. super(context,"yhn.db",null,1);
  4. }
  5. //数据库第一次创建时候调用,
  6. publicvoidonCreate(SQLiteDatabasedb){
  7. db.execSQL("createtableuser(uidintegerprimarykeyautoincrement,unamevarchar(20),uaddressvarchar(20))");
  8. }
  9. //数据库文件版本号发生变化时调用
  10. publicvoidonUpgrade(SQLiteDatabasearg0,intarg1,intarg2){
  11. }

如果执行上边的代码,则会创建一个数据库文件xx.db

Android 数据存储与读取:SQLite_第1张图片


数据库操作类:

[java] view plain copy print ?
  1. publicclassDBDao{
  2. DBOpenHelperdbOpenHelper;
  3. publicDBDao(Contextcontext){
  4. this.dbOpenHelper=newDBOpenHelper(context);
  5. }
  6. /**
  7. *添加一条数据
  8. *@paramuser
  9. */
  10. publicvoidsave(Useruser){
  11. SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
  12. db.execSQL("insertintouser(uname,uaddress)values(?,?)",newObject[]{user.getUname(),user.getUaddress()});
  13. db.close();
  14. }
  15. /**
  16. *删除一条数据
  17. *@paramuid
  18. */
  19. publicvoiddelete(Integeruid){
  20. SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
  21. db.execSQL("deletefromuserwhereuid=?",newObject[]{uid});
  22. db.close();
  23. }
  24. /**
  25. *更新一条数据
  26. *@paramuser
  27. */
  28. publicvoidupdate(Useruser){
  29. SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
  30. db.execSQL("updateusersetuname=?,uaddress=?whereuid=?",newObject[]{user.getUname(),user.getUaddress(),user.getUid()});
  31. db.close();
  32. }
  33. /**
  34. *查找一条数据
  35. *@paramuid
  36. */
  37. publicUserfind(Integeruid){
  38. SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();
  39. Cursorcursor=db.rawQuery("select*fromuserwhereuid=?",newString[]{uid.toString()});
  40. if(cursor.moveToFirst()){
  41. intuid2=cursor.getInt(cursor.getColumnIndex("uid"));
  42. Stringuname=cursor.getString(cursor.getColumnIndex("uname"));
  43. Stringuaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
  44. Useruser=newUser();
  45. user.setUid(uid2);
  46. user.setUname(uname);
  47. user.setUaddress(uaddress);
  48. returnuser;
  49. }
  50. cursor.close();
  51. returnnull;
  52. }
  53. /**
  54. *分页查找数据
  55. *@paramoffset跳过多少条数据
  56. *@parammaxResult每页多少条数据
  57. *@return
  58. */
  59. publicList<User>getScrollData(intoffset,intmaxResult){
  60. List<User>users=newArrayList<User>();
  61. SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();
  62. Cursorcursor=db.rawQuery("select*fromuserorderbyuidasclimit?,?",newString[]{String.valueOf(offset),String.valueOf(maxResult)});
  63. while(cursor.moveToNext()){
  64. intuid2=cursor.getInt(cursor.getColumnIndex("uid"));
  65. Stringuname=cursor.getString(cursor.getColumnIndex("uname"));
  66. Stringuaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
  67. Useruser=newUser();
  68. user.setUid(uid2);
  69. user.setUname(uname);
  70. user.setUaddress(uaddress);
  71. users.add(user);
  72. }
  73. returnusers;
  74. }
  75. /**
  76. *获取数据总数
  77. *@return
  78. */
  79. publiclonggetCount(){
  80. SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();
  81. Cursorcursor=db.rawQuery("selectcount(*)fromuser",null);
  82. cursor.moveToFirst();
  83. longreslut=cursor.getLong(0);
  84. returnreslut;
  85. }
  86. }

示例:向数据库中添加一条数据

[java] view plain copy print ?
  1. DBDaodbDao=newDBDao(this);
  2. Useruser=newUser();
  3. user.setUname("qixiaohu");
  4. user.setUaddress("chengdu");
  5. dbDao.save(user);

PC上管理SQLite数据库的方法:

Android 数据存储与读取:SQLite_第2张图片

上边添加数据后可以看到数据添加成功:

Android 数据存储与读取:SQLite_第3张图片

更多相关文章

  1. Android怎么让RadioButton图片居中显示
  2. android点击按钮控制图片切换-kotlin
  3. android 触摸手指动作放大和缩小图片
  4. Android联系人数据库全
  5. Android存储数据到本地文件
  6. android 数据存取——SharedPreferences
  7. Android 调用系统相册选择图片并显示
  8. android自带图片资源
  9. Android 图片倒影效果源码

随机推荐

  1. 不同手机在豌豆夹上显示设备同名的解决方
  2. MoDaCo.Switch 让你的 HTC One 自由转换
  3. android 集成系统分享和第三方分享案例
  4. [置顶] android头像相册/拍照选取,裁剪及
  5. android快应用,Error: Cannot find module
  6. Android(安卓)录制手机屏幕视频生成GIF图
  7. 多核时代的移动开发(一)-函数式编程思想到
  8. 如何将 Android带入互联网数字家庭? 第三
  9. Android最新敲诈者病毒分析及解锁
  10. Android(安卓)Google Map API使用的八个