在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



数据库操作类:

[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数据库的方法:


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

更多相关文章

  1. [Android(安卓)Pro] 完美Android(安卓)Cursor使用例子(Android数
  2. Android(安卓)远程调试 JNI 实现
  3. Android(安卓)配置 FileProvider
  4. Android(安卓)客户端将位置信息发送给服务端
  5. JS与Android(安卓)交互
  6. ubuntu下无法更新android sdk
  7. eclipse ADT在线安装 https://dl-ssl.google.com/android/eclips
  8. android button 上添加图片
  9. and 使用以及添加一个自己的mime type在ContactsContract

随机推荐

  1. 今天开始学习C
  2. OpenYurt v0.3.0 重磅发布:全面提升边缘场
  3. 搞定Mall项目中的权限管理功能,弄懂这些问
  4. android 运用取消默认的window preview
  5. 还在从零开始搭建项目?手撸了款快速开发脚
  6. 居然有人想白嫖我的日志,赶紧开启安全保护
  7. SpringBoot官方支持任务调度框架,轻量级用
  8. vCenter给虚拟服务器加资源后服务器时间
  9. Nginx如何支持HTTPS?手把手教贼简单!
  10. 40K+Star!Mall电商实战项目开源回忆录!