zoukankan      html  css  js  c++  java
  • Android 使用数据库 SQlite

    搞Android开发很久了,却还没有写过sqlite 先写写基础的,后面扩充。。。 

    package com.king.android.db;

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;

    /**

     * 描述:数据库。。。
     * 作者:Andy.Liu
     * 时间: 2012-8-2  下午10:37:27
     **/
    public class MyDataBaseAdapter {
        
        private static final String TAG = "MyDataBaseAdapter";
        
        private Context mContext = null;
        
        public static final String KEY_ID = "_id";
        
        public static final String KEY_NUM = "num";
        
        public static final String KEY_DATA = "data";
        
        private static final String DB_NAME = "king.db";
        
        private static final String TABLE_KING = "king";

        private static final int DB_VERSION = 1;
        
        
        //创建表的语句
        private static final String CREATE_TAB_KING = null;
        
        //执行open()打开数据库,保存返回的数据库对象
        private SQLiteDatabase mSQlLiteDatabase = null;
        
        //由SQLiteOpenHelper继承过来
        private DatabaseHelper mDatabaseHelper = null;
        
                //继承SQLiteOpenHelper
                private static class DatabaseHelper extends SQLiteOpenHelper{
            
                    //构造函数创建数据库
                public DatabaseHelper(Context context) {
                    /**
                     * 当调用getWriteableDatabase(),getReadableDatabase()方法时则创建一个数据库
                     
    */
                    super(context, DB_NAME, null, DB_VERSION);
                    
                }
            
                @Override/*创建数据表*/
                public void onCreate(SQLiteDatabase db) {
                    db.execSQL(CREATE_TAB_KING);
                }
            
                @Override//升级数据库
                public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                    db.execSQL("DROP TABLE IF EXISTS notes");
                    onCreate(db);
                }
            }
                //构造函数取得Context
            public MyDataBaseAdapter(Context context){
                this.mContext = context;
            }
            
            //打开数据库,返回数据库对象
            public void open()throws SQLException{
                mDatabaseHelper = new DatabaseHelper(mContext);
                mSQlLiteDatabase = mDatabaseHelper.getWritableDatabase();
            }
            
            //关闭数据库
            public void close(){
                mDatabaseHelper.close();
            }
            
            //插入一条数据
            public long insertData(int num,String data){
                ContentValues initValues = new ContentValues();
                initValues.put(KEY_NUM, num);
                initValues.put(KEY_DATA, data);
                return mSQlLiteDatabase.insert(TABLE_KING, KEY_ID, initValues);
            }
            
            //删除一条数据
            public boolean deleteData(long rowId){
                return mSQlLiteDatabase.delete(TABLE_KING, KEY_ID + "="+ rowId, null)>0;
            }
            
            //通过Cursor查询所有数据
            public Cursor fetchAllData(){
                return mSQlLiteDatabase.query(TABLE_KING, new String[]{KEY_ID,KEY_NUM,KEY_DATA}, nullnullnullnullnull);
            }
            
            //查询指定数据
            public Cursor fetchData(long rowId){
                Cursor mCursor = mSQlLiteDatabase.query(true, TABLE_KING,  new String[]{KEY_ID,KEY_NUM,KEY_DATA}, KEY_ID+ "="+rowId, nullnullnull,null,null);
                if(null!=mCursor){
                    mCursor.moveToFirst();
                }
                return mCursor;
            }
            
            //更新一条数据
            public boolean updateData(long rowId,int num,String data){
                ContentValues args = new ContentValues();
                args.put(KEY_NUM, num);
                args.put(KEY_DATA, data);
                return mSQlLiteDatabase.update(TABLE_KING, args, KEY_ID+ "="+rowId, null)>0;
            }
            
    }

    有些东西会,但不精通,而我现在要做的就是精通,复习回顾,整理自己的框架,举一反三。。。
  • 相关阅读:
    中国移动 使用Linux、OpenStack
    【 【henuacm2016级暑期训练】动态规划专题 K】 Really Big Numbers
    【【henuacm2016级暑期训练】动态规划专题 J】Red-Green Towers
    【【henuacm2016级暑期训练】动态规划专题 I】Gargari and Permutations
    【【henuacm2016级暑期训练】动态规划专题 H】Greenhouse Effect
    【 【henuacm2016级暑期训练】动态规划专题 G】 Palindrome pairs
    【【henuacm2016级暑期训练】动态规划专题 F】Physics Practical
    【【henuacm2016级暑期训练】动态规划专题 E】Destroying Roads
    【【henuacm2016级暑期训练】动态规划专题 D】Writing Code
    【henuacm2016级暑期训练-动态规划专题 C】Little Girl and Maximum XOR
  • 原文地址:https://www.cnblogs.com/liuzenglong/p/2620922.html
Copyright © 2011-2022 走看看