import android.content.Context;
import com.tencent.wcdb.database.SQLiteDatabase;
import com.tencent.wcdb.database.SQLiteOpenHelper;
import java.io.File;
import hisign.com.wcdbdemo.utils.LogUtil;
/**
* 简单的Helper
*/
public class PersonDBHelper extends SQLiteOpenHelper {
// 数据库 db 文件名称
private static final String DEFAULT_NAME = "person.db";
// 默认版本号
private static final int DEFAULT_VERSION = 2;
private Context mContext;
/**
* 通过父类构造方法创建 person 数据库
*/
public PersonDBHelper(Context context) {
super(context, DEFAULT_NAME, null, DEFAULT_VERSION, null);
this.mContext = context;
}
public PersonDBHelper(Context context, byte[] password) {
super(context,DEFAULT_NAME,password,null,DEFAULT_VERSION,null);
this.mContext = context;
}
/**
* 表创建
*/
@Override
public void onCreate(SQLiteDatabase db) {
final String SQL_CREATE = "CREATE TABLE IF NOT EXISTS person (_id INTEGER PRIMARY KEY AUTOINCREMENT , name VARCHAR(20) , address TEXT)";
db.execSQL(SQL_CREATE);
}
/**
* 版本升级
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO
LogUtil.logI("数据库版本"+oldVersion);
LogUtil.logI("数据库新版本"+newVersion);
}
/**
* 删除数据库 db 文件
*/
public boolean onDelete() {
File file = mContext.getDatabasePath(DEFAULT_NAME);
return SQLiteDatabase.deleteDatabase(file);
}
}
import android.content.ContentValues;
import android.content.Context;
import com.tencent.wcdb.Cursor;
import com.tencent.wcdb.database.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
import hisign.com.wcdbdemo.model.Person;
import hisign.com.wcdbdemo.utils.LogUtil;
public class PersonDBManager {
private PersonDBHelper mDBHelper;
private SQLiteDatabase mDB;
public PersonDBManager(Context context) {
// mDBHelper = new PersonDBHelper(context);//没有加密
mDBHelper = new PersonDBHelper(context, "1234".getBytes());//加密
mDB = mDBHelper.getWritableDatabase();
}
/**
* 插入数据
*
* @param person
*/
public boolean addPersonData(Person person) {
try {
// 开启事务
mDB.beginTransaction();
// 执行插入语句
final String sql = "INSERT INTO person VALUES(NULL,?,?)";
Object[] objects = new Object[]{person.getName(), person.getAddress()};
mDB.execSQL(sql, objects);
// 设置事务完成成功
mDB.setTransactionSuccessful();
}catch (Exception e){
return false;
}finally {
// 关闭事务
mDB.endTransaction();
}
return true;
}
/**
* 批量插入数据
*
* @param list
* @return
*/
public boolean addPersonList(List<Person> list) {
try {
// 开启事务
mDB.beginTransaction();
// 执行插入语句
for (Person person : list) {
Object[] objects = new Object[]{person.getName(), person.getAddress()};
final String sql = "INSERT INTO person VALUES(NULL,?,?)";
mDB.execSQL(sql, objects);
}
// 设置事务完成成功
mDB.setTransactionSuccessful();
} catch (Exception e) {
return false;
} finally {
// 关闭事务
mDB.endTransaction();
}
return true;
}
/**
* 删除特定姓名的人员数据
* @param name
* @return
*/
public boolean delPersonByName(String name) {
try {
// 开启事务
mDB.beginTransaction();
mDB.delete("person","name=?",new String[]{name});
// 设置事务完成成功
mDB.setTransactionSuccessful();
} catch (Exception e) {
return false;
} finally {
// 关闭事务
mDB.endTransaction();
}
return true;
}
/**
* 通过姓名获取数据库数据
* @param name
* @return
*/
public List<Person> getPersonByName(String name){
ArrayList<Person> persons = new ArrayList<>();
String sql = "select * from