• android 同时打开两个sqlite database db


    1,数据库类

    package com.example.testdb;
    
    import android.content.Context;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteException;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    public class DBAdapter {
    
        // DB info
        public static String MAIN_DATABASE_NAME = "Bowers.db";
        public static final String OFFSET_DATABASE_NAME = "BowersOffset.db";
        public static final int MAIN_DATABASE_VERSION = 1;
        public static final int OFFSET_DATABASE_VERSION = 1;
    
        // database control
        private DatabaseHelper mDbHelper;
        private  SQLiteDatabase mDb;
        private  Context mCtx;
        public String currentDBName;
        public int currentDBVer;
    
        private  class DatabaseHelper extends SQLiteOpenHelper {
            DatabaseHelper(Context context, String dbname, int dbversion) {
                super(context, dbname, null, dbversion);
            }
    
            @Override
            public void onCreate(SQLiteDatabase db) {
                Log.e("xxxx","onCreate");
                db.execSQL("CREATE TABLE `room` (`roomName` VARCHAR , `clazzId` INTEGER DEFAULT 0 , `createTime` BIGINT , `roomId` BIGINT , `check_code` BIGINT , `roomType` INTEGER , PRIMARY KEY (`roomId`) );");
            }
    
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                Log.e("xxxx","onCreate");            
            }
        }
    
        public DBAdapter(Context ctx) {
            mCtx = ctx;
        }
    
        public DBAdapter open(String dbname, int dbversion) throws SQLException {
            mDbHelper = new DatabaseHelper(mCtx, dbname, dbversion);
            mDb = mDbHelper.getWritableDatabase();
            
            currentDBName = dbname;
            currentDBVer=dbversion;
            
            return this;
        }
        
        public void insert() {
            mDb.execSQL("Replace into room(roomName, roomType ) values( '"+currentDBName+"',"+currentDBVer+");");
        }
    
    
        public void close() {
            mDbHelper.close();
        }
    
        //指定数据库文件路径方法打开数据库。
        static String MAIN_DB_PATH="/data/data/com.example.testdb/databases/";
        private static boolean checkDataBase(String dbname) {
            SQLiteDatabase checkDB = null;
            boolean exist = false;
            try {
                String db = MAIN_DB_PATH + dbname;
                checkDB = SQLiteDatabase.openDatabase(db, null, SQLiteDatabase.OPEN_READONLY);
            } catch (SQLiteException e) {
                Log.v("db log", "database does't exist");
            }
    
            if (checkDB != null) {
                exist = true;
                checkDB.close();
            }
            return exist;
        }
    
        public  void openDataBase(String dbname) throws SQLException {
            String dbPath = MAIN_DB_PATH + dbname;
            mDb = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);
        }
    
    }
    
    

    2,activity

    package com.example.testdb;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    
    public class MainActivity extends Activity{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            DBAdapter setupDBHelper = new DBAdapter(this);
            setupDBHelper.open(DBAdapter.MAIN_DATABASE_NAME, DBAdapter.MAIN_DATABASE_VERSION);
            setupDBHelper.insert();
    
            DBAdapter offsetDBHelper = new DBAdapter(this);
            offsetDBHelper.open(DBAdapter.OFFSET_DATABASE_NAME, DBAdapter.OFFSET_DATABASE_VERSION);
            offsetDBHelper.insert();
        }
    
        
        
        //The following is useless.
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }

    3,manifest xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.testdb"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="19" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.testdb.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
     
  • 相关阅读:
    第 2 章 第 3 题 数组旋转问题 平移算法实现1
    翻屏类 h5 适配方案:解决宽高自适应难题
    如何摆脱项目命名困难的尴尬局面
    网易和淘宝的rem方案剖析
    真实前端面试题目
    前端开发面试题总结之——JAVASCRIPT(三)
    前端开发面试题总结之——JAVASCRIPT(二)
    前端开发面试题总结之——HTML
    前端开发面试题总结之——CSS3
    前端开发面试题(一)
  • 原文地址:https://www.cnblogs.com/bigben0123/p/4412850.html
Copyright © 2020-2023  润新知