SQLite增删改查(自己写SQL语句)
2014-02-18 14:14
411 查看
在/article/6636587.html中,实现了数据库的创建和升级。没有增加向数据库中添加、删除、修改和查询Data的代码,这里用一种方式实现这些功能。
一、在先前的工程中增加PersonService接口和PersonDao类。看下图:
View Code
四、在MyTest中添加测试代码,全部代码如下
这是自己写SQL语句来实现的方法,后面介绍使用系统API来实现。
一、在先前的工程中增加PersonService接口和PersonDao类。看下图:
package com.bruce.dao; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import com.bruce.db_test.db.DbOpenHelper; import com.bruce.db_test.service.PersonService; public class PersonDao implements PersonService { private String TAG = "MyTest"; private DbOpenHelper helper = null; public PersonDao(Context context){ helper = new DbOpenHelper(context); } @Override public boolean insertPerson(Object[] values) { Log.i(TAG, "-->insertPerson"); boolean flag = false; SQLiteDatabase database = null; try { String sql = "insert into person(name,address,sex) values(?,?,?)"; database = helper.getWritableDatabase(); database.execSQL(sql, values); flag = true; Log.i(TAG, "-->insertPerson"+ flag); } catch (Exception e) { e.printStackTrace(); }finally{ if(database != null){ database.close(); } } return flag; } @Override public boolean deletePerson(Object[] values) { Log.i(TAG, "-->deletePerson"); boolean flag = false; SQLiteDatabase database = null; try { String sql = "delete from person where id = ? "; database = helper.getWritableDatabase(); database.execSQL(sql, values); flag = true; Log.i(TAG, "-->deletePerson"+ flag); } catch (Exception e) { e.printStackTrace(); }finally{ if(database != null){ database.close(); } } return flag; } @Override public boolean updatePerson(Object[] values) { Log.i(TAG, "-->updatePerson"); boolean flag = false; SQLiteDatabase database = null; try { String sql = "update person set name = ?, address = ?, sex = ? where id = ? "; database = helper.getWritableDatabase(); database.execSQL(sql, values); flag = true; Log.i(TAG, "-->updatePerson"+ flag); } catch (Exception e) { e.printStackTrace(); }finally{ if(database != null){ database.close(); } } return flag; } @Override public Map<String, String> findPerson(String[] selectionArgs) { Log.i(TAG, "-->findPerson begin"); Map<String, String> map = new HashMap<String, String>(); SQLiteDatabase database = null; Cursor cursor = null; try { String sql = "select * from person where id = ? "; database = helper.getWritableDatabase(); cursor = database.rawQuery(sql, selectionArgs); int count = cursor.getColumnCount(); while (cursor.moveToNext()) { for(int i=0; i<count; i++){ String cols_name = cursor.getColumnName(i); String cols_value = cursor.getString(cursor.getColumnIndex(cols_name)); if(cols_value == null){ cols_value = ""; } map.put(cols_name, cols_value); } } Log.i(TAG, "-->findPerson over"+map.toString()); } catch (Exception e) { e.printStackTrace(); }finally{ if(database != null){ database.close(); } } return map; } @Override public List<Map<String, String>> listPerson(String[] selectionArgs) { Log.i(TAG, "listPerson run"); List<Map<String, String>> list = new ArrayList<Map<String,String>>(); SQLiteDatabase database = null; Cursor cursor = null; try { String sql = "select * from person "; database = helper.getWritableDatabase(); cursor = database.rawQuery(sql, selectionArgs); int count = cursor.getColumnCount(); while(cursor.moveToNext()){ Map<String, String> map = new HashMap<String, String>(); for(int i = 0 ;i < count; i++){ String cols_name = cursor.getColumnName(i); String cols_value = cursor.getString(cursor.getColumnIndex(cols_name)); if(cols_value == null){ cols_value = ""; } map.put(cols_name, cols_value); } list.add(map); } } catch (Exception e) { e.printStackTrace(); }finally{ if(database != null){ database.close(); } } return list; } }
View Code
四、在MyTest中添加测试代码,全部代码如下
package com.bruce.db_test.test; import java.util.List; import java.util.Map; import com.bruce.dao.PersonDao; import com.bruce.db_test.db.DbOpenHelper; import com.bruce.db_test.service.PersonService; import android.test.AndroidTestCase; import android.util.Log; public class MyTest extends AndroidTestCase { private String TAG = "MyTest"; public void dbCreateTest(){ Log.i(TAG, "test begin"); DbOpenHelper helper = new DbOpenHelper(getContext()); helper.getWritableDatabase(); Log.i(TAG, "test end"); } public void addPersonTest(){ PersonService service = new PersonDao(getContext()); Object[] values = {"奥巴马","美国","男"}; boolean flag = service.insertPerson(values); Log.i(TAG, "--->addPerson" + flag); } public void deletePersonTest(){ PersonService service = new PersonDao(getContext()); Object[] values = {"2"}; boolean flag = service.deletePerson(values); Log.i(TAG, "--->test-deletePerson" + flag); } public void updatePersonTest(){ PersonService service = new PersonDao(getContext()); Object[] values = {"刘德华","北京","男","1"}; boolean flag = service.updatePerson(values); Log.i(TAG, "--->test-updatePerson" + flag); } public void viewPersonTest(){ PersonService service = new PersonDao(getContext()); String[] selectionArgs = {"1"}; Map<String, String> map = service.findPerson(selectionArgs); Log.i(TAG, "-->test "+ map.toString()); } public void listPersonTest(){ Log.i(TAG, "listPerosn begin"); PersonService service = new PersonDao(getContext()); //String[] selectionArgs = {null}; List<Map<String, String>> list = service.listPerson(null); Log.i(TAG, "-->"+list.toString()); } }
这是自己写SQL语句来实现的方法,后面介绍使用系统API来实现。
相关文章推荐
- 往SQLiteDatabase利用API或普通SQL语句增删改查数据详解
- Sqlite3常用SQL语句总结,一是防止自己忘了,二是分享
- SQLite SQL语句之增删改查 详解举例
- 自己总结的PHP和SQL语句
- SQL增删改查语句
- 配置文件之属性文件,sql漏洞的原因,sql注入的解决办法和原理,preparedStatement的增删改查语句,
- 巧妙查询 SQLite中存储文件大小的SQL语句
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
- sqlite中常用的sql语句
- SQL语句,给自己的记录
- sqlite基本sql语句使用
- 几行sqlite 中sql操作语句
- 关于ADO.NET,只须一个连接,一条SQL语句,轻松实现增删改查
- 二、SQL语句映射文件(2)增删改查、参数、缓存
- SQL基本增删改查语句
- SQL语句的增删改查
- SQL 增删改查语句
- sqlite常用sql语句
- 自己用的SQL语句
- 自己动手写JDBC驱动来监视SQL语句(1)