• 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());

       }

    }

  • 相关阅读:
    软件定义网络实验七:OpenDaylight 实验——Python中的REST API调用+选做
    软件定义网络实验六:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发
    软件定义网络实验五:OpenFlow协议分析和OpenDaylight安装
    软件定义网络实验四:Open vSwitch 实验——Mininet 中使用 OVS 命令
    第一次个人编程作业
    软件定义网络实验三:Mininet 实验——拓扑的命令脚本生成
    软件定义网络实验二:Mininet 实验——拓扑的命令脚本生成
    软件定义网络实验一:Mininet源码安装和可视化拓扑工具
    第一次博客作业
    第一次个人编程作业
  • 原文地址:https://www.cnblogs.com/cbyniypeu/p/4143914.html
Copyright © 2020-2023  润新知