在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. RecycleView滚动条添加
  2. 编写android jni代码时遇到的问题
  3. Android中有关数据库SQLite的介绍
  4. Android(安卓)Studio与HttpClient
  5. Android修行之路——Android程序设计基础(二)
  6. 阅读《Android(安卓)从入门到精通》(1)——了解 Android(安卓)开发
  7. Android开发实战-项目学习笔记(1)
  8. Android驱动使用JNI调用
  9. 2.3 SQLite存储

随机推荐

  1. ListView背景修饰
  2. Android的View动画
  3. Android属性动画ObjectAnimator源码简单
  4. Android嵌入式系统程序开发
  5. Android1.6好使,但是2.1 2.2遇到问题,不好
  6. 《Android(安卓)开发艺术探索》笔记2--IP
  7. android完全退出程序(android退出有多个ac
  8. Android布局属性补遗
  9. Android之selector标签
  10. Android磁盘管理-系统源码分析(1)