您的位置:首页 > 移动开发 > Android开发

android数据库SQLiteOpenHelper

2015-07-15 11:45 561 查看
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();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: