通過創建幫助類,創建數據庫,並在數據庫中添加,修改,刪除數據

方法一:

import com.example.day014_sqliteopenhelper.db.MySqliteHelper;

import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {
    
    //將數據庫的幫助類聲明出來
    private MySqliteHelper helper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        helper = new MySqliteHelper(MainActivity.this);
        
    }
    /**
     * helper.getWritableDatabase()
     *
     * helper.getReadableDatabase()
     *
     * 磁盤沒滿的時候   他們兩個是一樣  都可以讀寫
     * 磁盤滿的時候        getWritableDatabase()打開失敗
     *                 getReadableDatabase()            
     * @param v
     */
    public void onClick(View v){
        switch (v.getId()) {
        case R.id.btn_create://創建數據庫
            SQLiteDatabase db = helper.getWritableDatabase();
            db.close();
            break;
        case R.id.btn_insert://創建數據庫
            //首先獲取數據庫
            SQLiteDatabase db1 = helper.getWritableDatabase();
            
            String sql_insert = "insert into person values(1,'zhangsan',23)";
            String sql_insert1 = "insert into person values(2,'lisi',24)";
            String sql_insert2 = "insert into person values(3,'wangwu',25)";
                        
            for(int i=4;i<20;i++){
                String sql_insert3 = "insert into person values("+i+",'zhangsan"+i+"',25)";
                db1.execSQL(sql_insert3);
            }
            //執行
            db1.execSQL(sql_insert);
            db1.execSQL(sql_insert1);
            db1.execSQL(sql_insert2);
            
            db1.close();
            break;
        case R.id.btn_query:
            //首先獲取數據庫
            SQLiteDatabase db2 = helper.getWritableDatabase();
            
            String sql_query = "select * from person";
            //指定的查詢語句  cursor遊標
            Cursor cursor = db2.rawQuery(sql_query, null);
            //判斷下一條語句是否存在
            while(cursor.moveToNext()){
//                int id = cursor.getInt(0);
//                String name = cursor.getString(1);
//                int age = cursor.getInt(2);
                int id = cursor.getInt(cursor.getColumnIndex("_id"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                System.out.println("==id==:"+id+"==name=="+name+"==age=="+age);
            }
            db2.close();
            break;
        case R.id.btn_update:
            //首先獲取數據庫
            SQLiteDatabase db3 = helper.getWritableDatabase();
            String sql_update = "update person set name 'hah' where _id = 1";
            db3.execSQL(sql_update);
            db3.close();
            break;
        case R.id.btn_delete:
            //首先獲取數據庫
            SQLiteDatabase db4 = helper.getWritableDatabase();
            String sql_delete = "delete from person where _id = 2";
            db4.execSQL(sql_delete);
            db4.close();
            break;
            
        default:
            break;
        }
    }
}

方法二:

import com.example.day014_sqliteopenhelper.db.MySqliteHelper;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class SqliteApiActivity extends Activity{
    
    private MySqliteHelper helper;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        helper = new MySqliteHelper(SqliteApiActivity.this);
        
    }
    public void onClick(View v){
        switch (v.getId()) {
        case R.id.btn_create:
            //首先獲取數據庫
            SQLiteDatabase db = helper.getWritableDatabase();
            db.close();
            break;
        case R.id.btn_insert:
            //首先獲取數據庫
            SQLiteDatabase db1 = helper.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("_id", 30);
            values.put("name", "aaa");
            values.put("age", 34);
            db1.insert("person", null, values);
            
            values = new ContentValues();
            values.put("_id", 31);
            values.put("name", "bbb");
            values.put("age", 34);
            
            /**
             * 參數1:表名        參數2: 如果添加的數據是null  null    參數3:添加的數據
             */
            db1.insert("person", null, values);
            
            db1.close();
            break;
        case R.id.btn_query:
            //首先獲取數據庫
            SQLiteDatabase db2 = helper.getWritableDatabase();
            /**
             * 參數1:表名
             * 參數2:字段數組
             * 參數3:查詢的條件        _id = ?
             * 參數4:查詢條件的值        new String{"1"}
             * 參數5:分組字段
             * 參數6:在where條件後再次篩選
             * 參數7:查詢排序
             */
            Cursor cursor = db2.query("person", null, null, null, null, null, null);
            while(cursor.moveToNext()){
//                int id = cursor.getInt(0);
//                String name = cursor.getString(1);
//                int age = cursor.getInt(2);
                int id = cursor.getInt(cursor.getColumnIndex("_id"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                System.out.println("==id==:"+id+"==name=="+name+"==age=="+age);    
                
            }
            db2.close();
            
            break;
        case R.id.btn_update:
            //首先獲取數據庫
            SQLiteDatabase db3 = helper.getWritableDatabase();
            ContentValues values2 = new ContentValues();
            values2.put("name", "fffff");
            /**
             * 參數1:表名
             * 參數2:要修改的值
             * 參數3:where 條件語句     _id = ?
             * 參數4:條件語句的值        new String[]{"1"}
             */
            int num = db3.update("person", values2, "_id = ?", new String []{"1"});
            if (num>0) {
                Log.i("AAAAAA","修改成功");
            }else{
                Log.i("AAAAAA","修改失敗");
            }
            db3.close();
            break;
        case R.id.btn_delete:
            //首先獲取數據庫
            SQLiteDatabase db4 = helper.getWritableDatabase();
            
            /**
             * 參數1:數據庫表名
             * 參數2:where 條件語句     _id = ?
             * 參數3:條件語句的值        new String[]{"1"}
             */
            
            int num1 = db4.delete("person", "_id = ?", new String[]{1+""});
            
            if (num1>0) {
                Log.i("BBBBB","刪除成功");
            }else{
                Log.i("BBBBB","刪除失敗");
            }
            db4.close();
            break;
    

        default:
            break;
        }
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章