关闭

android 对sqlite数据库的增删改查

410人阅读 评论(0) 收藏 举报
分类:

android平台下数据库的一些概念

Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。

1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data/<package>/databases/的文件

夹下,一个文件就是一个数据库。

2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。

3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。

android平台下操作数据库的的相关类

(1.)SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装

了对数据库操作的基本方法,使用方便。

(2.)SQLiteDatabase 数据库访问了,主要是对数据库的增删改查等常用操作,功能比

SQLiteOpenHelper丰富,比如事务管理,分页等等。

(3.)Cursor游标类,主要用来返回返回查询记录结果

SQLiteOpenHelper 类使用方法比较少,网上介绍也比较多,本程序主要采用SQLiteDatabase类操作数

据库,介绍android 平台下Sqlite的多种使用方法。主要功能如图-1界面所示。

图-1 Sqlite数据库界面的操作及其功能

图-2 创建的数据库截图

源码下载: Sqlite.zip
1.对数据库的操作

(1.)创建一个数据库

  1. //在文件夹/data/data/<package>/databases/创建一个students.db的数据库  
  2. //该类返回一个SQLiteDatabase,对那个数据库操作,就要打开该数据库  
  3. openOrCreateDatabase("students.db",SQLiteDatabase.CREATE_IF_NECESSARY, null);  
  4.    

(2.)删除一个数据库

  1. //在Context环境中,删除students.db,该方法返回一个boolean类型  
  2. deleteDatabase("students.db");  
  3.    

(3.)获取应用程序所有数据库的名称

  1. //在Context环境中,获取该应用程序的所有数据库名称(即databases文件夹下的数据库文件)  
  2. //该方法返回一个字符串数组  
  3. databaseList()  
  4.    

(4.)重命名一个数据库

  1. //将数据库data.db重命名为renamedata.db  
  2. File f = getDatabasePath("data.db");  
  3. File renameFile=getDatabasePath("renamedata.db");  
  4. f.renameTo(renameFile);  
  5.    

2.对表的操作

(1.)创建一个表(sql语句中创建)

  1. mDb.execSQL("create table if not exists "+table+  
  2. " (id integer primary key autoincrement, "  
  3. "username text not null, info text not null);");  
  4.    

(2.)删除一个表

  1. mDb.execSQL("drop table if exists " + table);  
  2.    

(3.)修改表

Sqlite是不能修改一个表的字段,不能删除一个表的字段,但是可以重命名一个表的名称,可以添加一

个字段及其属性

1.)重命名表

  1. mDb.execSQL("alter table " + oldTable + " rename to  "+ newTableName+";");  
  2.    

2.)添加一列

  1. mDb.execSQL("alter table  " + table + " add column " + column +  type + " ;");  
  2.    

(4.)获取一个数据库的所有表的名称

  1. mDb.rawQuery("select name from sqlite_master where type='table' order by name",null);  
  2.    

3.对数据库记录的操作

(1.)添加一条记录

  1. ContentValues values = new ContentValues();  
  2. values.put("username", user.getUsername());  
  3. values.put("info", user.getInfo());  
  4. mDb.insert(table, null, values);  
  5.    

(2.)删除一条记录

  1. String whereClause =  "id=?";  
  2. String[] whereArgs = new String[] {String.valueOf(id)};  
  3. mDb.delete(table, whereClause, whereArgs);  
  4.    

(3.)修改一条记录

  1. ContentValues values = new ContentValues();  
  2. values.put("username", username);  
  3. values.put("info", info);  
  4. String whereClause = "id=?";  
  5. String[] whereArgs = new String[] { String.valueOf(id) };  
  6. mDb.update(table, values, whereClause, whereArgs);  
  7.    

(4.)查询一条数据

  1. String[] columns = new String[] { "id""username""info" };  
  2. String selection = "id=?";  
  3. String[] selectionArgs = { String.valueOf(id) };  
  4. String groupBy = null;  
  5. String having = null;  
  6. String orderBy = null;  
  7. mDb.query(table, columns, selection,selectionArgs, groupBy, having, orderBy);  
  8.    

(5.)查询所有记录

  1. mDb.rawQuery("select * from "+table, null);  
  2.    

SqliteActivity源码类如下(注意:在点击对数据记录的增删改查时要先create table ,否则会因为无法找到mytable表而报错)

SqliteActivity.java

  1. package com.sqlite.main;  
  2.   
  3. import java.io.File;  
  4. import android.app.Activity;  
  5. import android.content.ContentValues;  
  6. import android.database.Cursor;  
  7. import android.database.SQLException;  
  8. import android.database.sqlite.SQLiteDatabase;  
  9. import android.os.Bundle;  
  10. import android.text.Html;  
  11. import android.view.View;  
  12. import android.view.View.OnClickListener;  
  13. import android.widget.Button;  
  14. import android.widget.TextView;  
  15. import android.widget.Toast;  
  16.   
  17. public class SqliteActivity extends Activity {  
  18. /** Called when the activity is first created. */  
  19.   
  20. //SQLiteDatabase 引用  
  21. SQLiteDatabase mDb;  
  22. SQLiteDatabaseDao dao;  
  23. //显示结果  
  24. TextView show;  
  25.   
  26. @Override  
  27. public void onCreate(Bundle savedInstanceState) {  
  28. super.onCreate(savedInstanceState);  
  29. setContentView(R.layout.main);  
  30. //默认创建一个users.db的数据库  
  31. dao=new SQLiteDatabaseDao();  
  32.   
  33. //创建一个数据库  
  34. Button createDatabase=(Button)findViewById(R.id.createdatabase);  
  35. createDatabase.setOnClickListener(createDatabaseClick);  
  36. //获取所有数据库  
  37. Button getDatabasesList=(Button)findViewById(R.id.getdatabaseslist);  
  38. getDatabasesList.setOnClickListener(getDatabaseListClick);  
  39. //重命名数据库  
  40. Button renameDatabase=(Button)findViewById(R.id.renamedatabase);  
  41. renameDatabase.setOnClickListener(renameDatabaseClick);  
  42. //删除一个数据库  
  43. Button removeDatabase=(Button)findViewById(R.id.removedatabase);  
  44. removeDatabase.setOnClickListener(removeDatabaseClick);  
  45. //创建一个表  
  46. Button createTable=(Button)findViewById(R.id.createtable);  
  47. createTable.setOnClickListener(createTableClick);  
  48. //获取所有的表  
  49. Button getTablesList=(Button)findViewById(R.id.gettableslist);  
  50. getTablesList.setOnClickListener(getTablesListClick);  
  51. //重命名一个表  
  52. Button renameTable=(Button)findViewById(R.id.renametable);  
  53. renameTable.setOnClickListener(renameTableClick);  
  54. //删除一个表  
  55. Button dropTable=(Button)findViewById(R.id.droptable);  
  56. dropTable.setOnClickListener(dropTableClick);  
  57. //为表添加一个字段  
  58. Button addTableColumn=(Button)findViewById(R.id.addtablecolumn);  
  59. addTableColumn.setOnClickListener(addTableColumnClick);  
  60. //获取表的所有列  
  61. Button getTableColumnsList=(Button)findViewById(R.id.gettablecolumnslist);  
  62. getTableColumnsList.setOnClickListener(getTableColumnsListClick);  
  63. //插入一条数据  
  64. Button insertTable=(Button)findViewById(R.id.inserttable);  
  65. insertTable.setOnClickListener(insertTableClick);  
  66. //查询一条数据  
  67. Button queryTable=(Button)findViewById(R.id.querytable);  
  68. queryTable.setOnClickListener(queryTableClick);  
  69. //更新一条数据  
  70. Button updateTable=(Button)findViewById(R.id.updatetable);  
  71. updateTable.setOnClickListener(updateTableClick);  
  72. //删除一条数据  
  73. Button delete=(Button)findViewById(R.id.delete);  
  74. delete.setOnClickListener(deleteClick);  
  75. //显示结果  
  76. show=(TextView)findViewById(R.id.showresult);  
  77.   
  78. }  
  79.   
  80. /************对按钮事件进行操作的事件响应****************/  
  81.   
  82. //创建一个数据库  
  83. OnClickListener createDatabaseClick=new OnClickListener() {  
  84.   
  85. @Override  
  86. public void onClick(View v) {  
  87. // TODO Auto-generated method stub  
  88. //创建一个名为students.db的数据库,主要是生成另外一个数据库以示区别  
  89. openOrCreateDatabase("students.db",  
  90. SQLiteDatabase.CREATE_IF_NECESSARY, null);  
  91. show.setText("创建的数据库路径为\n"  
  92. +getDatabasePath("students.db"));  
  93.   
  94. }  
  95. };  
  96.   
  97. //创建一个应用程序数据库的个数(list)的事件响应  
  98. OnClickListener getDatabaseListClick=new OnClickListener() {  
  99.   
  100. @Override  
  101. public void onClick(View v) {  
  102. // TODO Auto-generated method stub  
  103. String []dblist=dao.getDatabasesList();  
  104. String rs="";  
  105. for(String s:dblist){  
  106. rs+=s+"\n";  
  107. }  
  108. show.setText("数据库名称为:\n"+ rs);  
  109.   
  110. }  
  111. };  
  112.   
  113. //重命名一个数据库的事件响应  
  114. OnClickListener renameDatabaseClick=new OnClickListener() {  
  115.   
  116. @Override  
  117. public void onClick(View v) {  
  118. // TODO Auto-generated method stub  
  119. //创建一个data.db的数据库,并命名为renamedata.db数据库  
  120. openOrCreateDatabase("data.db",  
  121. SQLiteDatabase.CREATE_IF_NECESSARY, null);  
  122. File f = getDatabasePath("data.db");  
  123. File renameFile=getDatabasePath("renamedata.db");  
  124. boolean b=f.renameTo(renameFile);  
  125. if(b)  
  126. show.setText("data.db已经重命名为renamedata.db");  
  127. else  
  128.   
  129. show.setText("无法重命名");  
  130. }  
  131. };  
  132.   
  133. //删除一个数据库的事件响应  
  134. OnClickListener removeDatabaseClick=new OnClickListener() {  
  135.   
  136. @Override  
  137. public void onClick(View v) {  
  138. // TODO Auto-generated method stub  
  139. //删除students.db数据库  
  140. dao.dropDatabase("students.db");  
  141. //重新获取数据库名称  
  142. String []dblist=dao.getDatabasesList();  
  143. String rs="";  
  144. for(String s:dblist){  
  145. rs+=s+"\n";  
  146. }  
  147. show.setText("数据库students.db已经删除\n现在数据库的名称为:\n"+rs);  
  148. }  
  149. };  
  150.   
  151. //创建一个表的事件响应  
  152.   
  153. OnClickListener createTableClick=new OnClickListener() {  
  154.   
  155. @Override  
  156. public void onClick(View v) {  
  157. // TODO Auto-generated method stub  
  158. //在user.db数据库中插入mytable表,并添加相应的字段  
  159. dao.createTable(mDb, "mytable");  
  160. show.setText("数据库students.db已经创建mytable表\n");  
  161.   
  162. }  
  163. };  
  164.   
  165. //获取一个数据库的所有表个数(list)的事件响应  
  166.   
  167. OnClickListener getTablesListClick=new OnClickListener() {  
  168.   
  169. @Override  
  170. public void onClick(View v) {  
  171. // TODO Auto-generated method stub  
  172.   
  173. //显示所有的表的数据  
  174. String tableNames=dao.getTablesList(mDb);  
  175. show.setText(tableNames);  
  176.   
  177. }  
  178. };  
  179.   
  180. //重命名一个表的事件响应  
  181.   
  182. OnClickListener renameTableClick=new OnClickListener() {  
  183.   
  184. @Override  
  185. public void onClick(View v) {  
  186. // TODO Auto-generated method stub  
  187. //创建一个testtable的表  
  188. dao.createTable(mDb, "testtable");  
  189. //将testtable重命名为newtable  
  190. boolean b=dao.alterTableRenameTable(mDb, "testtable""newtable");  
  191. if(b)show.setText("testtable已经重命名为\nnewtable表\n");  
  192. else show.setText("newtable已经存在\n请删除(drop table)后重试");  
  193. }  
  194. };  
  195.   
  196. //删除一个表的事件响应  
  197.   
  198. OnClickListener dropTableClick=new OnClickListener() {  
  199.   
  200. @Override  
  201. public void onClick(View v) {  
  202. // TODO Auto-generated method stub  
  203. //删除    newtable表  
  204. dao.dropTable(mDb, "newtable");  
  205. //显示所有的表的数据  
  206. String tableNames=dao.getTablesList(mDb);  
  207. show.setText("newtable已经删除\n现在表名称为:\n"+tableNames);  
  208. }  
  209. };  
  210.   
  211. //修改一个表(给表添加一个字段)的事件响应  
  212.   
  213. OnClickListener addTableColumnClick=new OnClickListener() {  
  214.   
  215. @Override  
  216. public void onClick(View v) {  
  217. // TODO Auto-generated method stub  
  218. //默认添加一个password字段,类型为varchar,长度为30  
  219. boolean b=dao.alterTableAddColumn(mDb, "mytable""password"" varchar(30)");  
  220. if(b)show.setText("已经添加password字段\n字符类型为:varchar\n长度为:30");  
  221. else show.setText("mytable表中password字段已经存在");  
  222. }  
  223. };  
  224.   
  225. //获取一个表的所有列的名称事件响应  
  226.   
  227. OnClickListener getTableColumnsListClick=new OnClickListener() {  
  228.   
  229. @Override  
  230. public void onClick(View v) {  
  231. // TODO Auto-generated method stub  
  232.   
  233. String str=dao.getTableColumns(mDb);  
  234. show.setText("mytable表的列名:\n"+str);  
  235. }  
  236. };  
  237.   
  238. //对一个表添加一个数据的事件响应  
  239.   
  240. OnClickListener insertTableClick=new OnClickListener() {  
  241.   
  242. @Override  
  243. public void onClick(View v) {  
  244. // TODO Auto-generated method stub  
  245.   
  246. User user=new User();  
  247. user.setUsername("Mr.Young");  
  248. user.setInfo("好学生");  
  249. dao.insert(mDb, "mytable", user);  
  250.   
  251. Cursor c=dao.getAllData(mDb, "mytable");  
  252. if(c.moveToLast()){  
  253. String id=c.getString(0);  
  254. String username=c.getString(1);  
  255. String info=c.getString(2);  
  256.   
  257. show.setText("最新添加的一条数据:\n"+"id:"+id+"\nusername:"+username+"\ninfo:"+info);  
  258. }  
  259.   
  260. }  
  261. };  
  262.   
  263. //查询一个表的所有数据记录的事件响应  
  264.   
  265. OnClickListener queryTableClick=new OnClickListener() {  
  266.   
  267. @Override  
  268. public void onClick(View v) {  
  269. // TODO Auto-generated method stub  
  270. //默认查询mytable所有数据  
  271.   
  272. Cursor c=dao.getAllData(mDb, "mytable");  
  273. String s="";  
  274. int columnsSize=c.getColumnCount();  
  275. String []columns=c.getColumnNames();  
  276. String columnsName="";  
  277. //获取表头  
  278. for (String col : columns) {  
  279.   
  280. columnsName+=col+"\u0020 \u0020";  
  281. }  
  282. //获取表的内容  
  283. while(c.moveToNext()){  
  284.   
  285. for(int i=0;i<columnsSize;i++){  
  286. s+=c.getString(i)+"\u0020 \u0020";  
  287. }  
  288. s+="<br>";  
  289. }  
  290. show.setText(Html.fromHtml("<h5>"+columnsName+"</h5>"+s));  
  291. }  
  292. };  
  293.   
  294. //更新一个表的数据的事件响应  
  295.   
  296. OnClickListener updateTableClick=new OnClickListener() {  
  297.   
  298. @Override  
  299. public void onClick(View v) {  
  300. // TODO Auto-generated method stub  
  301. Cursor c=dao.getAllData(mDb, "mytable");  
  302. if(c.moveToFirst()){  
  303.   
  304. int first=Integer.valueOf(c.getString(0));  
  305.   
  306. //默认修改第一条记录  
  307. dao.update(mDb, "mytable", first, "Yong Ming""学习成绩优异");  
  308. Cursor u=dao.queryById(mDb, "mytable", first);  
  309. u.moveToFirst();  
  310. show.setText("id为:"+first+"的记录已经修改:\nid:"+first+"\nusername:"+u.getString(1)+"\ninfo:"+u.getString(2));  
  311.   
  312. }else  
  313.   
  314. show.setText("没有要更新的记录!请添加数据后再作修改");  
  315. }  
  316. };  
  317.   
  318. //删除一个表的一条数据的事件响应  
  319.   
  320. OnClickListener deleteClick=new OnClickListener() {  
  321.   
  322. @Override  
  323. public void onClick(View v) {  
  324. // TODO Auto-generated method stub  
  325. Cursor c=dao.getAllData(mDb, "mytable");  
  326. if(c.moveToLast()){  
  327. int last=Integer.valueOf(c.getString(0));  
  328.   
  329. //默认删除最后一条记录  
  330. boolean b=dao.delete(mDb, "mytable", last);  
  331. if(b)  
  332. show.setText("成功删除id为:\n"+last+"的记录!");  
  333. }  
  334. else  
  335. show.setText("没有要删除的记录!");  
  336. }  
  337. };  
  338.   
  339. //退出时关闭数据库  
  340. @Override  
  341. public void finish() {  
  342. // TODO Auto-generated method stub  
  343. super.finish();  
  344. mDb.close();  
  345. }  
  346.   
  347. /******************* 
  348. * 
  349. * 
  350. * 
  351. * 对Sqlite数据库进行操作的类 
  352. * 
  353. * 
  354. * 
  355. * ****************/  
  356.   
  357. class SQLiteDatabaseDao {  
  358.   
  359. public SQLiteDatabaseDao(){  
  360. mDb=openOrCreateDatabase("users.db",  
  361. SQLiteDatabase.CREATE_IF_NECESSARY, null);  
  362. }  
  363.   
  364. /************ 对数据库的操作 ***********************/  
  365.   
  366. // 获取所有数据库的名称  
  367. public String[] getDatabasesList() {  
  368.   
  369. return databaseList();  
  370. }  
  371.   
  372. // 创建一个数据库  
  373. public void createDatabase(String db) {  
  374.   
  375. openOrCreateDatabase(db, SQLiteDatabase.CREATE_IF_NECESSARY, null);  
  376. }  
  377.   
  378. // 删除一个数据库  
  379. public void dropDatabase(String db) {  
  380.   
  381. try {  
  382. deleteDatabase(db);  
  383.   
  384. catch (SQLException e) {  
  385. Toast.makeText(getApplicationContext(), "删除数据库失败",  
  386. Toast.LENGTH_LONG).show();  
  387.   
  388. }  
  389. }  
  390.   
  391. /************ 对数据库的表的属性添加修改操作 ***********************/  
  392.   
  393. // 获取某个数据库的表的名称  
  394. public String getTablesList(SQLiteDatabase mDb) {  
  395.   
  396. Cursor c = mDb  
  397. .rawQuery(  
  398. "select name from sqlite_master where type='table' order by name",  
  399. null);  
  400. String str="";  
  401. while (c.moveToNext()) {  
  402. str+=c.getString(0)+"\n";  
  403.   
  404. }  
  405. return "表的名称为:\n"+str;  
  406. }  
  407.   
  408. // 创建一个表,默认创建一个username info字段的表,可以在后面的代码中添加相应的列  
  409. public void createTable(SQLiteDatabase mDb, String table) {  
  410. try {  
  411. mDb.execSQL("create table if not exists "+table+  
  412. " (id integer primary key autoincrement, "  
  413. "username text not null, info text not null);");  
  414. catch (SQLException e) {  
  415. Toast.makeText(getApplicationContext(), "数据表创建失败",  
  416. Toast.LENGTH_LONG).show();  
  417. }  
  418. }  
  419.   
  420. // 删除一个表  
  421. public void dropTable(SQLiteDatabase mDb, String table) {  
  422.   
  423. try {  
  424. mDb.execSQL("drop table if exists " + table);  
  425.   
  426. catch (SQLException e) {  
  427. Toast.makeText(getApplicationContext(), "数据表删除失败",  
  428. Toast.LENGTH_LONG).show();  
  429. }  
  430.   
  431. }  
  432.   
  433. // 修改表--重命名表名  
  434. public boolean alterTableRenameTable(SQLiteDatabase mDb, String oldTable,  
  435. String newTableName) {  
  436. try {  
  437. mDb.execSQL("alter table " + oldTable + " rename to  "  
  438. + newTableName+";");  
  439.   
  440. catch (SQLException e) {  
  441. Toast.makeText(getApplicationContext(), "数据表重命名失败",  
  442. Toast.LENGTH_LONG).show();  
  443. return false;  
  444. }  
  445.   
  446. return true;  
  447. }  
  448.   
  449. // 修改表--添加一列  
  450. // @table 需要修改的table名  
  451. // @column 添加的列的名称  
  452. // @type 列的类型,如text,varchar等  
  453. public boolean alterTableAddColumn(SQLiteDatabase mDb, String table,  
  454. String column, String type) {  
  455. try {  
  456. mDb.execSQL("alter table  " + table + " add column " + column  
  457. + type + " ;");  
  458.   
  459. catch (SQLException e) {  
  460. Toast.makeText(getApplicationContext(), "数据表添加失败",  
  461. Toast.LENGTH_LONG).show();  
  462. return false;  
  463. }  
  464.   
  465. return true;  
  466. }  
  467.   
  468. // 获取表的列的名称  
  469. public String getTableColumns(SQLiteDatabase mDb) {  
  470.   
  471. Cursor c=dao.getAllData(mDb, "mytable");;  
  472. String []columns=c.getColumnNames();  
  473. String str="";  
  474. for (String s : columns) {  
  475.   
  476. str+=s+"\n";  
  477.   
  478. }  
  479.   
  480. return str;  
  481. }  
  482.   
  483. /************ 对数据库的表数据增删改查操作 ***********************/  
  484. // 添加一条数据,默认只向username和info字段添加数据  
  485.   
  486. public long insert(SQLiteDatabase mDb,String table,User user) {  
  487.   
  488. ContentValues values = new ContentValues();  
  489. values.put("username", user.getUsername());  
  490. values.put("info", user.getInfo());  
  491. return mDb.insert(table, null, values);  
  492. }  
  493.   
  494. /* 
  495. * 
  496. * 删除一条数据 
  497. */  
  498. public boolean delete(SQLiteDatabase mDb,String table,int id) {  
  499.   
  500. String whereClause =  "id=?";  
  501. String[] whereArgs = new String[] {String.valueOf(id)};  
  502. try{  
  503. mDb.delete(table, whereClause, whereArgs);  
  504. }catch (SQLException e) {  
  505. Toast.makeText(getApplicationContext(), "删除数据库失败",  
  506. Toast.LENGTH_LONG).show();  
  507. return false;  
  508. }  
  509. return true;  
  510. }  
  511.   
  512. /* 
  513. * 
  514. * 修改一条数据 
  515. */  
  516. public void update(SQLiteDatabase mDb,String table,int id,String username,String info)  
  517.  {  
  518.   
  519. ContentValues values = new ContentValues();  
  520. values.put("username", username);  
  521. values.put("info", info);  
  522. String whereClause = "id=?";  
  523. String[] whereArgs = new String[] { String.valueOf(id) };  
  524. mDb.update(table, values, whereClause, whereArgs);  
  525. }  
  526.   
  527. public Cursor queryById(SQLiteDatabase mDb,String table,int id) {  
  528.   
  529. // 第一个参数String:表名  
  530. // 第二个参数String[]:要查询的列名  
  531. // 第三个参数String:查询条件  
  532. // 第四个参数String[]:查询条件的参数  
  533. // 第五个参数String:对查询的结果进行分组  
  534. // 第六个参数String:对分组的结果进行限制  
  535. // 第七个参数String:对查询的结果进行排序  
  536. String[] columns = new String[] { "id""username""info" };  
  537. String selection = "id=?";  
  538. String[] selectionArgs = { String.valueOf(id) };  
  539. String groupBy = null;  
  540. String having = null;  
  541. String orderBy = null;  
  542. return mDb.query(table, columns, selection,  
  543. selectionArgs, groupBy, having, orderBy);  
  544. }  
  545.   
  546. public Cursor getAllData(SQLiteDatabase mDb,String table) {  
  547.   
  548. //遍历表所有数据  
  549. return mDb.rawQuery("select * from "+table, null);  
  550.   
  551. /** 如果需要返回指定的列,则执行以下语句 
  552. String[] columns = new String[] { "id","username", "info" }; 
  553. // 调用SQLiteDatabase类的query函数查询记录 
  554. return mDb.query(table, columns, null, null, null, null, 
  555. null); 
  556.  
  557. */  
  558.   
  559. }  
  560.   
  561. }  
  562.   
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46356次
    • 积分:1293
    • 等级:
    • 排名:千里之外
    • 原创:85篇
    • 转载:7篇
    • 译文:0篇
    • 评论:3条
    最新评论