Android DbHelper创建

此文章作为自己的一个记录,方便自己以后复习


public class DbHelper extends SQLiteOpenHelper {
    private SQLiteDatabase db = null;
    private Cursor cursor = null;
    private String TAG = "DBTest";
    private boolean isInit;
    private String createString;

    public DbHelper(Context context, String dbName, SQLiteDatabase.CursorFactory factory,
                    int version) {
        super(context, dbName, factory, version);
    }

    // 建表
    @Override
    public void onCreate(SQLiteDatabase db) {
        this.db = db;
        db.execSQL(createString);
    }

    public void inItDb(String createString) {
        if (isInit)
            return;
        this.createString = createString;
        this.isInit = true;
    }

    // 增
    public void insert(ContentValues values, String tableName) {
        SQLiteDatabase db = getWritableDatabase();
        System.out.println("values" + values.get("id") + values.get("name")
                + values.get("age"));
        db.insert(tableName, null, values);
        Log.i(TAG, "增加一行");
        db.close();
    }

    // 删除某一行
    public void delete(String id, String tableName) {
        // if (db == null) {
        SQLiteDatabase db = getWritableDatabase();
        // }
        db.delete(tableName, "id=?", new String[]{String.valueOf(id)});
        Log.i(TAG, "删除一行");
    }

    // 更新某一行
    public void update(ContentValues values, String string, String tableName) {
        SQLiteDatabase db = getWritableDatabase();
        db.update(tableName, values, "id=?", new String[]{string});
        db.close();
        Log.i(TAG, "更新一行");
    }

    // 按id查询
    public Cursor query(String string, String tableName) {
        SQLiteDatabase db = getWritableDatabase();
        System.out.println("id---->" + string);
        cursor = db.query(tableName, null, "id=?", new String[]{string},
                null, null, null);
        Log.i(TAG, "按id查询一行");
        return cursor;
    }

    public Cursor query(String tableName) {
        SQLiteDatabase db = getWritableDatabase();
        cursor = db.query(tableName, null, null, null, "id", null, "id");
        Log.i(TAG, "查询所有");

        return cursor;
    }

    public boolean deleteDatabase(Context context, String DBName) {
        return context.deleteDatabase(DBName);
    }

    // 按sql语句操作数据库
    public void handleBySql(String TabName) {
        String sqsl = "update sqlite_sequence set seq=0 where name='" + TabName + "'";
        SQLiteDatabase db = getWritableDatabase();
        db.execSQL(sqsl);
        Log.i(TAG, "执行sql语句");


    }

    /**
     * 判断某张表是否存在
     *
     * @return
     */
    public boolean tabbleIsExist(String tableName) {
        boolean result = false;
        if (tableName == null) {
            return false;
        }
        SQLiteDatabase db = null;
        Cursor cursor = null;
        try {
            db = this.getReadableDatabase();
            String sql = "select count(*) as c from Sqlite_master  where type ='table' and name ='" + tableName.trim() + "' ";
            cursor = db.rawQuery(sql, null);
            if (cursor.moveToNext()) {
                int count = cursor.getInt(0);
                if (count > 0) {
                    result = true;
                }
            }

        } catch (Exception e) {
            // TODO: handle exception
        }
        return result;
    }

    // 关闭数据库
    public void close() {
        if (db != null) {
            db.close();
            db = null;
        }
        if (cursor != null) {
            cursor.close();
            cursor = null;
        }

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    //清空搜索记录
    public void deleteAllRecords() {
        db = this.getWritableDatabase();
        db.execSQL("delete from TabOther");
        db.close();
    }

    /**
     * 创建表
     *
     * @return
     */
    public static String getOther(String tablename) {
        return "Create Table " + tablename + "( id text not null, name text )";
    }
//在Activity中使用
//初始化
 dbHelper = new DbHelper(this, DB, null, 1);
        dbHelper.inItDb(dbHelper.getOther(TabOther));
//添加数据
  ContentValues values = new ContentValues();
        values.put("id", num + "");
        values.put("name", name + "");
        dbHelper.insert(values, TabOther);
//查询数据
  /**
     * 查询数据库
     *
     * @return
     */
    public List<CoordinateAlterSample> queryAll() {
        List<CoordinateAlterSample> rst = new ArrayList<CoordinateAlterSample>();
        // 解析游标
        Cursor cursor = dbHelper.query(TabOther);
        CoordinateAlterSample persion = null;
        if (cursor.moveToFirst()) {
            while (!cursor.isAfterLast()) {
                persion = new CoordinateAlterSample();
                persion.id = cursor.getString(cursor.getColumnIndex("id"));
                persion.name = cursor.getString(cursor.getColumnIndex("name"));
                rst.add(persion);
                cursor.moveToNext();
            }
        }
        return rst;
    }
//修改


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,564评论 25 709
  • 人体上共有409个穴位,包括十四经脉(十二正经和任、督二脉)上361个穴位和48个经外奇穴。其中有108个穴位遭受...
    遗忘的憾事阅读 4,987评论 0 1
  • 距离自己上一次去到书店,已是很长一段时间。其间,所有的资料书、图书,全部都是在网上轻松下单。而今天,借着空闲有机会...
    安戈洛阅读 4,292评论 0 1
  • 昨天看到一个重大通知,我们终于出伏啦。前几天还一直询问我妈,有没有出伏。我妈回答我,她根本不懂什么叫三伏天。鬼知道...
    在水一方含阅读 3,486评论 0 1

友情链接更多精彩内容