zoukankan      html  css  js  c++  java
  • 一个数据库操作片段

    1、自定义DBHelper

    package org.app.qqmusic.tool;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    
    public class DBHelper extends SQLiteOpenHelper {
        /**游标***/
        private Cursor c = null;
        /**建立表的语句**/
        private static final String CREATE_TAB = "create table "
            + "music(_id integer primary key autoincrement,music_id integer,clicks integer," +
                    "latest text)";
        /**列名***/
        private static final String TAB_NAME = "music";
        /**数据库***/
        private SQLiteDatabase db = null;
        /***构造函数**/
        public DBHelper(Context context, String name, CursorFactory factory,
                int version) {
            super(context, name, factory, version);
        }
        /***构造一个数据库,如果没有就创建一个数据库***/
        @Override
        public void onCreate(SQLiteDatabase db) {
            this.db = db;
            db.execSQL(CREATE_TAB);
        }
        /**插入数据**/
        public void insert(ContentValues values){
            SQLiteDatabase db = getWritableDatabase();
            db.insert(TAB_NAME, null, values);
            db.close();
        }
         /*** 更新数据*/
        public void update(ContentValues values,int id){
            SQLiteDatabase db = getWritableDatabase();
            db.update(TAB_NAME, values, "music_id="+id, null);
            db.close();
        }
        /**删除数据*/
        public void delete(int id){
            if (db == null){
                db = getWritableDatabase();
            }
            db.delete(TAB_NAME, "music_id=?", new String[]{String.valueOf(id)});
        }
        /***查找数据*/
        public Cursor query(int id){
            SQLiteDatabase db = getReadableDatabase();
            c = db.query(TAB_NAME, null, "music_id=?", new String[]{String.valueOf(id)}, null, null, null);
            db.close();
            return c;
        }
        /***按点击量查询**/
        public Cursor queryByClicks(){
            SQLiteDatabase db = getReadableDatabase();
            c = db.query(TAB_NAME, null, null, null, null, null, "clicks desc");
            return c;
        }
        /***按时间降序查询**/
        public Cursor queryRecently(){
            SQLiteDatabase db = getReadableDatabase();
            c = db.query(TAB_NAME, null, null, null, null, null, "latest desc");
            return c;
        }
        /***关闭数据库***/
        public void close(){
            if (db != null){
                db.close();
                db=null;
            }
            if (c!=null){
                c.close();
                c=null;
            }
        }
        
        @Override
        public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    
        }
    
    }

    2、使用的时候

    /** 操作数据库*/
        private void DBOperate(int pos) {
            dbHelper = new DBHelper(this, "music.db", null, 2);
            Cursor c = dbHelper.query(pos);
            Date currentTime = new Date();
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateString = formatter.format(currentTime);
            if (c == null || c.getCount() == 0) {//
                ContentValues values = new ContentValues();
                values.put("music_id", pos);
                values.put("clicks", 1);
                values.put("latest", dateString);
                dbHelper.insert(values);
            } else {
                c.moveToNext();
                int clicks = c.getInt(2);
                clicks++;
                ContentValues values = new ContentValues();
                values.put("clicks", clicks);
                values.put("latest", dateString);
                dbHelper.update(values, pos);
            }
            if (c != null) {
                c.close();
                c = null;
            }
            if (dbHelper != null) {
                dbHelper.close();
                dbHelper = null;
            }
        }
  • 相关阅读:
    Linux内核初探 之 进程(三) —— 进程调度算法
    Android中的路径记录 | RobinBlog
    子域名劫持
    zookeeper 实战
    [iOS 开发] WebViewJavascriptBridge 从原理到实战 · Shannon's Blog
    Swift Property
    工厂方法模式
    jquery插件封装
    其他事件
    吴裕雄--天生自然诗经学习笔记 :夸父逐日
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2852988.html
Copyright © 2011-2022 走看看