android数据库SQLiteOpenHelper
2015-07-15 11:45
561 查看
Android数据库其实很简单,这里就两个很简单的类,总结下:
1,创建数据库;
2,创建数据表;
3,实现增删改查,对数据库操作;
这里我定义了两个类
DBHelper 创建数据库,表
SqlIteOperate 增删改查
使用事务处理,防止执行sql语句失败,回滚事务
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(); } } }
相关文章推荐
- Android使用Activity用作弹出式对话框
- Android的onTouch事件分发机制
- android之ActionBarActivity的用法
- android 录制视频(环信)
- Android ORMLite ForeignCollection关联外部集合
- Pro Android学习笔记(三)——Intent
- Android入门(53)——第八章 使用GestureDetector进行手势识别
- android Li 4000 stView ListSelector 不起作用(被覆盖)
- Android开发中support_v4包版本不同导致的Unable to instantiate activity ComponentInfo
- Android PullToRefresh (ListView GridView 上下拉刷新) 使用详解
- 如何编写更省电的Android应用
- Android Studio 使用笔记: 重命名和重构
- Android 应用在后台弹出提示相关的笔记1
- 导入Android新项目出错总结
- Android快速开发框架大全
- 底部导航栏的实现方式
- Android Studio 使用感受 错误解决
- 浅谈android应用的版本更新
- Android优化汇总
- Android使用反射机制设置ListView的默认焦点