Created
December 29, 2013 15:29
-
-
Save jay16/8171493 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//常用到的sqlLite操作类,对增删查改进行了简单的封装。 | |
import android.content.ContentValues; | |
import android.content.Context; | |
import android.database.Cursor; | |
import android.database.SQLException; | |
import android.database.sqlite.SQLiteDatabase; | |
import android.database.sqlite.SQLiteOpenHelper; | |
public class DBHelper { | |
static private DatabaseHelper mDbHelper; | |
static private SQLiteDatabase mDb; | |
private static final String DATABASE_NAME = "zhyy.db"; | |
private static final int DATABASE_VERSION = 1; | |
private final Context mCtx; | |
private static class DatabaseHelper extends SQLiteOpenHelper { | |
DatabaseHelper(Context context) { | |
super(context, DATABASE_NAME, null, DATABASE_VERSION); | |
} | |
@Override | |
public void onCreate(SQLiteDatabase db) { | |
} | |
@Override | |
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { | |
} | |
} | |
public DBHelper(Context ctx) { | |
this.mCtx = ctx; | |
} | |
public DBHelper open() throws SQLException { | |
mDbHelper = new DatabaseHelper(mCtx); | |
mDb = mDbHelper.getWritableDatabase(); | |
return this; | |
} | |
public void closeclose() { | |
mDb.close(); | |
mDbHelper.close(); | |
} | |
/** | |
* 插入数据 | |
* 参数:tableName 表名 | |
* initialValues 要插入的列对应值 | |
* */ | |
public long insert(String tableName,ContentValues initialValues) { | |
return mDb.insert(tableName, null, initialValues); | |
} | |
/** | |
* 删除数据 | |
* 参数:tableName 表名 | |
* deleteCondition 删除的条件 | |
* deleteArgs 如果deleteCondition中有“?”号,将用此数组中的值替换 | |
* */ | |
public boolean delete(String tableName,String deleteCondition,String[] deleteArgs) { | |
return mDb.delete(tableName, deleteCondition, deleteArgs) > 0; | |
} | |
/** | |
* 更新数据 | |
* 参数:tableName 表名 | |
* initialValues 要更新的列 | |
* selection 更新的条件 | |
* selectArgs 如果selection中有“?”号,将用此数组中的值替换 | |
* */ | |
public boolean update(String tableName,ContentValues initialValues,String selection,String[] selectArgs) { | |
int returnValue = mDb.update(tableName, initialValues, selection, selectArgs); | |
return returnValue > 0; | |
} | |
/** | |
* 取得一个列表 | |
* 参数:tableName 表名 | |
* columns 返回的列 | |
* selection 查询条件 | |
* selectArgs 如果selection中有“?”号,将用此数组中的值替换 | |
* */ | |
public Cursor findList(String tableName,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy) { | |
return mDb.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy); | |
} | |
/** | |
* 取得单行记录 | |
* 参数:tableName 表名 | |
* columns 返回的列 | |
* selection 查询条件 | |
* selectArgs 如果selection中有“?”号,将用此数组中的值替换 | |
* */ | |
public Cursor findInfo(String tableName,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit,boolean distinct) throws SQLException { | |
Cursor mCursor = mDb.query(distinct, tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit); | |
if (mCursor != null) { | |
mCursor.moveToFirst(); | |
} | |
return mCursor; | |
} | |
/** | |
* 执行sql | |
* 参数:sql 要执行的sql | |
* */ | |
public void execSQL(String sql){ | |
mDb.execSQL(sql); | |
} | |
/** | |
* 判断某张表是否存在 | |
* @param tabName 表名 | |
* @return | |
*/ | |
public boolean isTableExist(String tableName){ | |
boolean result = false; | |
if(tableName == null){ | |
return false; | |
} | |
try { | |
Cursor cursor = null; | |
String sql = "select count(1) as c from sqlite_master where type ='table' and name ='"+tableName.trim()+"' "; | |
cursor = mDb.rawQuery(sql, null); | |
if(cursor.moveToNext()){ | |
int count = cursor.getInt(0); | |
if(count>0){ | |
result = true; | |
} | |
} | |
cursor.close(); | |
} catch (Exception e) { | |
// TODO: handle exception | |
} | |
return result; | |
} | |
/** | |
* 判断某张表中是否存在某字段(注,该方法无法判断表是否存在,因此应与isTableExist一起使用) | |
* | |
* @param tabName 表名 | |
* @return | |
*/ | |
public boolean isColumnExist(String tableName,String columnName){ | |
boolean result = false; | |
if(tableName == null){ | |
return false; | |
} | |
try { | |
Cursor cursor = null; | |
String sql = "select count(1) as c from sqlite_master where type ='table' and name ='"+tableName.trim()+"' and sql like '%"+ columnName.trim() +"%'" ; | |
cursor = mDb.rawQuery(sql, null); | |
if(cursor.moveToNext()){ | |
int count = cursor.getInt(0); | |
if(count>0){ | |
result = true; | |
} | |
} | |
cursor.close(); | |
} catch (Exception e) { | |
// TODO: handle exception | |
} | |
return result; | |
} | |
} | |
//各种增删查改的sql | |
package com.android.mission.test; | |
import com.android.mission.util.DBHelper; | |
import android.content.ContentValues; | |
import android.database.Cursor; | |
import android.test.AndroidTestCase; | |
import android.util.Log; | |
/** | |
* 单元测试操作sqlLite的各种sql | |
*/ | |
public class testSqlLite extends AndroidTestCase{ | |
/** | |
* 创建表 | |
* @throws Exception | |
*/ | |
public void createTable() throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
String deleteSql = "drop table if exists user "; | |
dbHelper.execSQL(deleteSql); | |
//id是自动增长的主键,username和 password为字段名, text为字段的类型 | |
String sql = "CREATE TABLE user (id integer primary key autoincrement, username text, password text)"; | |
dbHelper.execSQL(sql); | |
dbHelper.closeclose(); | |
} | |
/** | |
* 插入数据 | |
* @throws Exception | |
*/ | |
public void insert() throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
ContentValues values = new ContentValues(); //相当于map | |
values.put("username", "test"); | |
values.put("password", "123456"); | |
dbHelper.insert("user", values); | |
dbHelper.closeclose(); | |
} | |
/** | |
* 更新数据 | |
* @throws Exception | |
*/ | |
public void update() throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
ContentValues initialValues = new ContentValues(); | |
initialValues.put("username", "changename"); //更新的字段和值 | |
dbHelper.update("user", initialValues, "id = '1'", null); //第三个参数为 条件语句 | |
dbHelper.closeclose(); | |
} | |
/** | |
* 删除数据 | |
* @throws Exception | |
*/ | |
public void delete() throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
String testId = "1"; | |
dbHelper.delete("user", "id = '"+ testId +"'", null); | |
dbHelper.closeclose(); | |
} | |
/** | |
* 增加字段 | |
* @throws Exception | |
*/ | |
public void addColumn() throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
String updateSql = "alter table user add company text"; | |
dbHelper.execSQL(updateSql); | |
} | |
/** | |
* 查询列表 | |
* @throws Exception | |
*/ | |
public void selectList()throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
Cursor returnCursor = dbHelper.findList("user",new String[] {"id","username", "password"}, "username = 'test'", null,null, null, "id desc"); | |
while(returnCursor.moveToNext()){ | |
String id = returnCursor.getString(returnCursor.getColumnIndexOrThrow("id")); | |
String username = returnCursor.getString(returnCursor.getColumnIndexOrThrow("username")); | |
String password = returnCursor.getString(returnCursor.getColumnIndexOrThrow("password")); | |
} | |
} | |
/** | |
* 某条信息 | |
* @throws Exception | |
*/ | |
public void selectInfo()throws Exception{ | |
DBHelper dbHelper = new DBHelper(this.getContext()); | |
dbHelper.open(); | |
Cursor returnCursor = dbHelper.findList("user",new String[] {"id","username", "password"}, "id = '1'", null,null, null, "id desc"); | |
if (returnCursor.getCount() > 0) { | |
returnCursor.moveToFirst(); | |
String id = returnCursor.getString(returnCursor.getColumnIndexOrThrow("id")); | |
String username = returnCursor.getString(returnCursor.getColumnIndexOrThrow("username")); | |
String password = returnCursor.getString(returnCursor.getColumnIndexOrThrow("password")); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
http://blog.csdn.net/catoop/article/details/7589204