加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite工具类

发布时间:2020-12-12 23:58:41 所属栏目:百科 来源:网络整理
导读:package com.asc.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** *数据库公共类,提
  1. packagecom.asc.db;
  2. importandroid.content.ContentValues;
  3. importandroid.content.Context;
  4. importandroid.database.Cursor;
  5. importandroid.database.sqlite.SQLiteDatabase;
  6. importandroid.database.sqlite.SQLiteOpenHelper;
  7. /**
  8. *数据库公共类,提供基本数据库操作
  9. *
  10. *@authorraymon
  11. *
  12. */
  13. publicclassDBManager{
  14. //默认数据库
  15. privatestaticfinalStringDB_NAME="asc.db";
  16. //数据库版本
  17. privatestaticfinalintDB_VERSION=1;
  18. //执行open()打开数据库时,保存返回的数据库对象
  19. privateSQLiteDatabasemSQLiteDatabase=null;
  20. //由SQLiteOpenHelper继承过来
  21. privateDatabaseHelpermDatabaseHelper=null;
  22. //本地Context对象
  23. privateContextmContext=null;
  24. privatestaticDBManagerdbConn=null;
  25. //查询游标对象
  26. privateCursorcursor;
  27. /**
  28. *SQLiteOpenHelper内部类
  29. */
  30. privatestaticclassDatabaseHelperextendsSQLiteOpenHelper{
  31. DatabaseHelper(Contextcontext){
  32. //当调用getWritableDatabase()或getReadableDatabase()方法时,创建一个数据库
  33. super(context,DB_NAME,null,DB_VERSION);
  34. }
  35. @Override
  36. publicvoidonCreate(SQLiteDatabasedb){
  37. db.execSQL("CREATETABLEad_record(idPRIMARYKEYNOTNULL,adUrlTEXT,apMacTEXT,createDateDATETIME);");
  38. }
  39. @Override
  40. publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
  41. db.execSQL("DROPTABLEIFEXISTSad_record");
  42. onCreate(db);
  43. }
  44. }
  45. /**
  46. *构造函数
  47. *
  48. *@parammContext
  49. */
  50. privateDBManager(ContextmContext){
  51. super();
  52. this.mContext=mContext;
  53. }
  54. publicstaticDBManagergetInstance(ContextmContext){
  55. if(null==dbConn){
  56. dbConn=newDBManager(mContext);
  57. }
  58. returndbConn;
  59. }
  60. /**
  61. *打开数据库
  62. */
  63. publicvoidopen(){
  64. mDatabaseHelper=newDatabaseHelper(mContext);
  65. mSQLiteDatabase=mDatabaseHelper.getWritableDatabase();
  66. }
  67. /**
  68. *关闭数据库
  69. */
  70. publicvoidclose(){
  71. if(null!=mDatabaseHelper){
  72. mDatabaseHelper.close();
  73. }
  74. if(null!=cursor){
  75. cursor.close();
  76. }
  77. }
  78. /**
  79. *插入数据
  80. *@paramtableName表名
  81. *@paramnullColumnnull
  82. *@paramcontentValues名值对
  83. *@return新插入数据的ID,错误返回-1
  84. *@throwsException
  85. */
  86. publiclonginsert(StringtableName,StringnullColumn,
  87. ContentValuescontentValues)throwsException{
  88. try{
  89. returnmSQLiteDatabase.insert(tableName,nullColumn,contentValues);
  90. }catch(Exceptione){
  91. throwe;
  92. }
  93. }
  94. /**
  95. *通过主键ID删除数据
  96. *@paramtableName表名
  97. *@paramkey主键名
  98. *@paramid主键值
  99. *@return受影响的记录数
  100. *@throwsException
  101. */
  102. publiclongdelete(StringtableName,Stringkey,intid)throwsException{
  103. try{
  104. returnmSQLiteDatabase.delete(tableName,key+"="+id,null);
  105. }catch(Exceptione){
  106. throwe;
  107. }
  108. }
  109. /**
  110. *查找表的所有数据
  111. *@paramtableName表名
  112. *@paramcolumns如果返回所有列,则填null
  113. *@return
  114. *@throwsException
  115. */
  116. publicCursorfindAll(StringtableName,String[]columns)throwsException{
  117. try{
  118. cursor=mSQLiteDatabase.query(tableName,columns,null,null);
  119. cursor.moveToFirst();
  120. returncursor;
  121. }catch(Exceptione){
  122. throwe;
  123. }
  124. }
  125. /**
  126. *根据主键查找数据
  127. *@paramtableName表名
  128. *@paramkey主键名
  129. *@paramid主键值
  130. *@paramcolumns如果返回所有列,则填null
  131. *@returnCursor游标
  132. *@throwsException
  133. */
  134. publicCursorfindById(StringtableName,intid,String[]columns)throwsException{
  135. try{
  136. returnmSQLiteDatabase.query(tableName,null);
  137. }catch(Exceptione){
  138. throwe;
  139. }
  140. }
  141. /**
  142. *根据条件查询数据
  143. *@paramtableName表名
  144. *@paramnames查询条件
  145. *@paramvalues查询条件值
  146. *@paramcolumns如果返回所有列,则填null
  147. *@paramorderColumn排序的列
  148. *@paramlimit限制返回数
  149. *@returnCursor游标
  150. *@throwsException
  151. */
  152. publicCursorfind(StringtableName,String[]names,String[]values,String[]columns,StringorderColumn,Stringlimit)throwsException{
  153. try{
  154. StringBufferselection=newStringBuffer();
  155. for(inti=0;i<names.length;i++){
  156. selection.append(names[i]);
  157. selection.append("=?");
  158. if(i!=names.length-1){
  159. selection.append(",");
  160. }
  161. }
  162. cursor=mSQLiteDatabase.query(true,tableName,selection.toString(),values,orderColumn,limit);
  163. cursor.moveToFirst();
  164. returncursor;
  165. }catch(Exceptione){
  166. throwe;
  167. }
  168. }
  169. /**
  170. *
  171. *@paramtableName表名
  172. *@paramnames查询条件
  173. *@paramvalues查询条件值
  174. *@paramargs更新列-值对
  175. *@returntrue或false
  176. *@throwsException
  177. */
  178. publicbooleanudpate(StringtableName,ContentValuesargs)throwsException{
  179. try{
  180. StringBufferselection=newStringBuffer();
  181. for(inti=0;i<names.length;i++){
  182. selection.append(names[i]);
  183. selection.append("=?");
  184. if(i!=names.length-1){
  185. selection.append(",");
  186. }
  187. }
  188. returnmSQLiteDatabase.update(tableName,args,values)>0;
  189. }catch(Exceptione){
  190. throwe;
  191. }
  192. }
  193. /**
  194. *执行sql语句,包括创建表、删除、插入
  195. *
  196. *@paramsql
  197. */
  198. publicvoidexecuteSql(Stringsql){
  199. mSQLiteDatabase.execSQL(sql);
  200. }
  201. } //原文: http://forhope.iteye.com/blog/1461412

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读