android数据库SQLiteOpenHelper

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 listSearchs,
            Map 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移动开发)