Android数据库其实很简单,这里就两个很简单的类,总结下:
1,创建数据库;
2,创建数据表;
3,实现增删改查,对数据库操作;
这里我定义了两个类
DBHelper 创建数据库,表
SqlIteOperate 增删改查
public class DBHelper extends SQLiteOpenHelper {
// 初始化对象,建库
public DBHelper(Context context) {
super(context, Constants.DATABASE_NAME, null, 1);
}
// 建表
@Override
public void onCreate(SQLiteDatabase db) {
// 主键类型必须 Integer 递增是 autoincrement
// 搜索表(主键递增,搜索内容)
db.execSQL("CREATE TABLE serach_table(_sId INTEGER PRIMARY KEY AUTOINCREMENT,sContent TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
使用事务处理,防止执行sql语句失败,回滚事务
public class SqlIteOperate {
// SQLITE数据库操作类
private DBHelper dbHelp;// 得到数据库连接
private SQLiteDatabase db;// 数据库操作对象
public SqlIteOperate() {
super();
}
public SqlIteOperate(Context mContext) {
super();
dbHelp = new DBHelper(mContext);
}
/**
* 添加搜索记录
*
* @param searchContent
* 搜索的内容
*/
public void insertSqlIteSearch(String searchContent) {
// 得到数据库连接
db = dbHelp.getReadableDatabase();
// 开始事务
db.beginTransaction();
try {
// 共用添加sql语句
String sql = "INSERT INTO serach_table(sContent) VALUES(?)";
db.execSQL(sql, new String[] { searchContent });
// 提交事务
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 结束事务
db.endTransaction();
// 关闭数据库连接
db.close();
}
}
public boolean deleteSqliteSerach(String searchContent) {
// 得到数据库连接
db = dbHelp.getReadableDatabase();
// 开始事务
db.beginTransaction();
try {
// 共用添加sql语句
String sql = "DELETE FROM serach_table";
if (searchContent != null) {
sql += " WHERE sContent=?";
db.execSQL(sql, new String[] { searchContent });
} else {
db.execSQL(sql);
}
// 提交事务
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
// 结束事务
db.endTransaction();
// 关闭数据库连接
db.close();
}
return true;
}
public void findSqliteSearch(ArrayList<String> listSearchs,
Map<String, String> mapSearchs) {
// 得到数据库操作对象
db = dbHelp.getReadableDatabase();
Cursor cursor = db.rawQuery(
"SELECT * FROM serach_table order by _sId desc", null);
try {
// 遍历游标,n+1次
while (cursor.moveToNext()) {
String searchContent = cursor.getString(cursor
.getColumnIndex("sContent"));// 地址
// 保存对象用于Adapter绑定
listSearchs.add(searchContent);
// 用于直接判断是否存在相同的数据
mapSearchs.put(searchContent, searchContent);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭游标
cursor.close();
// 关闭数据库
db.close();
}
}
}