zoukankan      html  css  js  c++  java
  • Android SQLite DB的封装

    DbOpenHelper:

    package com.example.db_demo01.DB;

     

    import android.content.Context;

    import android.database.sqlite.SQLiteDatabase;

    import android.database.sqlite.SQLiteOpenHelper;

     

    public class DbOpenHelper extends SQLiteOpenHelper {

     

       private static String name = "mydb.db";    //数据库名

       private static int version = 1;            //版本号

      

       public DbOpenHelper(Context context) {

          super(context, name, null, version);

       }

     

       @Override

       public void onCreate(SQLiteDatabase db) {

          String sql = "create table person(id integer primary key autoincrement, name varchar(64), address varchar(64))";

          db.execSQL(sql);     //创建表

       }

     

       @Override

       public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2){

          //更新表结构时要同时更新版本号

       }

    }

    DB操作的封闭:

    package com.example.db_demo01.DB;

     

    import java.util.ArrayList;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;

     

    import android.content.Context;

    import android.database.Cursor;

    import android.database.sqlite.SQLiteDatabase;

     

    public class DB {

       private DbOpenHelper helper = null;

       public DB(Context context){

          helper = new DbOpenHelper(context);

       }

      

       public boolean ExecSQL(String sql){

          boolean flag = false;

          SQLiteDatabase database = null;

          try {

             database = helper.getWritableDatabase();

             database.execSQL(sql);

             flag = true;

          } catch (Exception e) {

             e.printStackTrace();

          }finally{

             if(database != null){

                database.close();

             }

          }

          return flag;

       }

       //插入

       public boolean Insert(String sql){

          return ExecSQL(sql);

       }

       //删除

       public boolean Delete(String sql){

          return ExecSQL(sql);

       }

       //更新

       public boolean Update(String sql){

          return ExecSQL(sql);

       }

       //查询

       public List<Map<String, String>> Query(String sql){

          SQLiteDatabase database = null;

          List<Map<String, String>> list = new ArrayList<Map<String, String>>();

          try {

             database = helper.getWritableDatabase();

             Cursor cursor = database.rawQuery(sql, null);

             int colums = cursor.getColumnCount();

             while(cursor.moveToNext()){

                Map<String, String> map = new HashMap<String, String>();

                for(int i=0; i<colums; i++){

                    String cols_name = cursor.getColumnName(i);

                    String cols_value = cursor.getString(cursor.getColumnIndex(cols_name));

                    if(cols_value == null){

                       cols_value = "";

                   }

                    map.put(cols_name, cols_value);

                }

                list.add(map);

             }

          } catch (Exception e) {

             e.printStackTrace();

          }finally{

             if(database != null){

                database.close();

             }

          }

          return list;

       }

      

    }

    单元测试类:

    package com.example.db_demo01.test;

     

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Map;

    import android.test.AndroidTestCase;

    import com.example.db_demo01.DB.DB;

    import com.example.db_demo01.DB.DbOpenHelper;

     

    public class MyTest extends AndroidTestCase {

       public MyTest(){}

       public void createDb(){

          DbOpenHelper helper = new DbOpenHelper(getContext());

          helper.getWritableDatabase();

       }

       public void insert(){

          DB db = new DB(getContext());

          String sql = "insert into person(name, address) values('邓', 'zhbit')";

          db.Insert(sql);

       }

      

       public void delete(){

          DB db = new DB(getContext());

          String sql = "delete from person where name = '邓'";

          System.out.println(db.Delete(sql));

       }

      

       public void update(){

          DB db = new DB(getContext());

          String sql = "update person set name = '邓2' where name = '邓'";

          System.out.println(db.Delete(sql));

       }

      

       public void query(){

          DB db = new DB(getContext());

          String sql = "select * from person";

          List<Map<String, String>> list = new ArrayList<Map<String, String>>();

          list = db.Query(sql);

          System.out.println(list.toString());

       }

    }

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/cbyniypeu/p/4143914.html
Copyright © 2011-2022 走看看