sql >> データベース >  >> RDS >> SQLite

sqlliteで作成およびエクスポートされたアセットフォルダーandroidからデータベースを配置してデータベースを読み取る方法

    public class DataBaseHelper extends SQLiteOpenHelper {
        private SQLiteDatabase myDataBase;
        private final Context myContext;
        private static final String DATABASE_NAME = "YOURDBNAME";
        public final static String DATABASE_PATH = "/data/data/com.your.packagename/databases/";
        public static final int DATABASE_VERSION = 1;
        public DataBaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            this.myContext = context;
    
        }
    
    
    
    
        //Create a empty database on the system
        public void createDatabase() throws IOException
        {
    
              boolean dbExist = checkDataBase();
    
              if(dbExist)
              {
                    Log.v("DB Exists", "db exists");
                    // By calling this method here onUpgrade will be called on a
                    // writeable database, but only if the version number has been
                    // bumped
                    //onUpgrade(myDataBase, DATABASE_VERSION_old, DATABASE_VERSION);
              }
    
              boolean dbExist1 = checkDataBase();
              if(!dbExist1)
              {
                    this.getReadableDatabase();
                    try
                    {
                          this.close();    
                          copyDataBase();
                    }
                    catch (IOException e)
                    {
                          throw new Error("Error copying database");
                    }
              }
    
        }
        //Check database already exist or not
        private boolean checkDataBase()
        {
              boolean checkDB = false;
              try
              {
                    String myPath = DATABASE_PATH + DATABASE_NAME;
                    File dbfile = new File(myPath);
                    checkDB = dbfile.exists();
              }
              catch(SQLiteException e)
              {
              }
              return checkDB;
        }
        //Copies your database from your local assets-folder to the just created empty database in the system folder
        private void copyDataBase() throws IOException
        {
    
            InputStream mInput = myContext.getAssets().open(DATABASE_NAME);
            String outFileName = DATABASE_PATH + DATABASE_NAME;
            OutputStream mOutput = new FileOutputStream(outFileName);
            byte[] mBuffer = new byte[2024];
            int mLength;
            while ((mLength = mInput.read(mBuffer)) > 0) {
                mOutput.write(mBuffer, 0, mLength);
            }
            mOutput.flush();
            mOutput.close();
            mInput.close();
        }
      //delete database
        public void db_delete()
        {
              File file = new File(DATABASE_PATH + DATABASE_NAME);
              if(file.exists())
              {
                    file.delete();
                    System.out.println("delete database file.");
              }
        }
      //Open database
        public void openDatabase() throws SQLException
        {
              String myPath = DATABASE_PATH + DATABASE_NAME;
              myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
        }
    
        public synchronized void closeDataBase()throws SQLException
        {
              if(myDataBase != null)
                    myDataBase.close();
              super.close();
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
             if (newVersion > oldVersion)
             {
                   Log.v("Database Upgrade", "Database version higher than old.");
                   db_delete();
             }
    
        }
    
    }
    

    そしてそれを実装するには

    DataBaseHelper dbhelper = new DataBaseHelper(getApplicationContext());
    
            db = dbhelper.getWritableDatabase();
    

    そのために:

    Cursor cur;
        cur_Herbs = db.rawQuery("select * from TABLENAME where  name like '"
                + edit_text_name.gettext.tostring() + "'", null);
    
            if (cur.moveToFirst()) {
                do {
                    int name = cur.getColumnIndex("name");
                    int pwd= cur.getColumnIndex("pwd");
    str_name = cur.getString(name).toString();
                    str_pwd= cur.getString(ped).toString();
    if(str_name.equals(edittext_uname.gettext.tostring()and str_pwd.equals(edittext_pwd.gettext.tostring()))
    {
    
    //code for if loginn
    }
    } while (cur_Herbs.moveToNext());
    
    
    }
    


    1. SQL Server T-SQL関数の使用方法SUM:5つのユースケース

    2. ウィンドウ関数とよりローカルな集約

    3. SQLskills待機タイプライブラリにSentryOneデータが表示されるようになりました

    4. Postgresql generate_seriesofmonths