Sqlite資料庫增刪查改操作

來源:互聯網
上載者:User

標籤:oncreate   mysql   override   條件   family   user   database   預設值   ali   

 1、SqliteOpenHelper為資料庫抽象類別,需建立一個類繼承他,其中有onCreate建立資料庫的抽象方法和onUpgrade升級資料庫方法(一般用不上)。

 1 //建立資料庫的類 2 //SQLiteOpenHelper抽象類別  onCreate和onUpgrade抽象方法 3 public class MySqliteHelper  extends SQLiteOpenHelper { 4      5     //建立資料庫以及表 6     private String SqlCpData="create table TableCpData(id integer primary key autoincrement," 7             + "cp_num varchar(20),time varchar(20));"; 8      9     10     public MySqliteHelper (Context context) {11         this(context, "tableCpData.db", null, 1);12     }13     14     public MySqliteHelper(Context context, String name, CursorFactory factory, int version) {15         super(context, name, factory, version);16         // TODO Auto-generated constructor stub17     }18     19     //建立資料庫抽象方法20     @Override21     public void onCreate(SQLiteDatabase db) {22         // TODO Auto-generated method stub23         db.execSQL(SqlCpData);  //執行建立資料庫操作24         Log.i(SqlCpData, "資料庫建立成功");25     }26     27     //升級資料庫28     @Override29     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {30         // TODO Auto-generated method stub31         32     }33     34     35 }

2、然後建立一個方法類,用來定義擷取操作以及時間的方法

//定義擷取操作以及時間的方法public class Rule {        public int id;    public String cp_num;    public String time;        //擷取ID    public int  getid() {        return id;    }    //設定ID    public void setId(int id) {        this.id=id;    }        public String getCpNum() {        return cp_num;    }        public void setCpNum(String cp_num){        this.cp_num=cp_num;    }        public String getTime() {        return time;    }        public void setTime(String time) {        this.time=time;    }        //該類的方法    public Rule(int id, String cp_num, String time) {        super();        this.id = id;        this.cp_num = cp_num;        this.time = time;    }    public Rule() {        super();    }    }

3、然後建立資料庫的一個增刪查改類

//資料庫的增刪查改操作public class CpDataDao {        private MySqliteHelper mySqliteHelper;  //定義資料庫操作函數        public CpDataDao(Context context) {                mySqliteHelper=new MySqliteHelper(context); //執行個體化資料庫操作函數    }        //插入資料庫    public long insert(String cp_num,String time)    {        //執行個體化SQLiteDatabase對象        SQLiteDatabase database=mySqliteHelper.getWritableDatabase();        ContentValues contentValues=new ContentValues();        contentValues.put("cp_num", cp_num);        contentValues.put("time", time);        return database.insert("TableCpData", null, contentValues);        //表明 、空列的預設值、插入封裝的列名稱和列值    }    private Rule rule=null;    //儲存資料的集合    private List<Rule> dataList = null;        /**     * 查詢所有資料     *      * @return 資料集合     */        public List<Rule> queryAll() {        SQLiteDatabase db = mySqliteHelper.getReadableDatabase();        Cursor cursor = db.query("TableCpData",                new String[] { "id", "cp_num", "time" }, null, null, null, null,                null);        if (cursor != null && cursor.getCount() > 0) {            dataList = new ArrayList<Rule>();            while (cursor.moveToNext()) {                rule = new Rule();                rule.setId(cursor.getInt(0));                rule.setCpNum(cursor.getString(1));                rule.setTime(cursor.getString(2));                dataList.add(rule);            }        }        return dataList;    }        /**     * 刪除所有資料     * @return    0 刪除成功,1刪除失敗     */    public int deleteAll() {        try {            SQLiteDatabase db = mySqliteHelper.getWritableDatabase();            // return db.delete("student", null, null);            String sql = "delete from TableCpData";            db.execSQL(sql);            return 0;        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return 1;    }        }

還有一些按條件進行查詢的操作,注意修改資料庫名和表明要和上面的一致

    /**     * 查詢時間     *      * @return 資料集合     */    //查詢資料的集合//    List<Rule> timeList=null;    public List<Rule> queryTimerecord(final String time) {        SQLiteDatabase db = dsOpenHelper.getReadableDatabase();        String sqluser = "select * from ruledata where  time like ? ";        String [] Sqlselect = new String[] {                    "%" + time + "%",        };        Cursor cursor =db.rawQuery(sqluser, Sqlselect);        if (cursor != null && cursor.getCount() > 0) {        //    UserPassward = new ArrayList<User>();            while (cursor.moveToNext()) {                Rule rule = new Rule();                rule.setId(cursor.getInt(0));                rule.setOperation(cursor.getString(1));                rule.setTime(cursor.getString(2));                //UserPassward.add(user);                dataList.add(rule);            }        }        return dataList;    }

 

 

4、最後在自己的類中對這些方法進行叫用作業,就可以實現Sqlite的增刪查改操作了

比方說對下位機收到的資料進行插入資料

(1)先在類全域變數中聲明類

private CpDataDao cpDataDao=new CpDataDao(this); //資料庫增刪查改類

 (2)然後調用該類的方法進行插入資料

cpDataDao.insert(device.getName(), time());  //插入一個裝置的名稱和當前系統時間

(3)  (2)中time擷取當前系統時間方法

    //擷取系統時間函數    private String time() {        SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");        Date curDate = new Date(System.currentTimeMillis());//擷取目前時間        String str_time = formatter.format(curDate);        return str_time;    }

5、查詢資料的操作也是類似,通過類來調用方法,這裡是將查詢到的資料顯示在一個textView介面中

(1)  聲明

  private CpDataDao cpDataDao=new CpDataDao(this);
    private CpDataDao deleDataDao=new CpDataDao(this);

    private LinearLayout llcontent;
    private TextView tv;

(2)查詢所有的方法

    //查詢所有充電記錄     private void queryAll() {        //mListView.removeAllViews();        llcontent.removeAllViews();        List<Rule> dataList=cpDataDao.queryAll();        if (dataList!=null) {            for(Rule rule:dataList) {                tv=new TextView(this);                //mListView=new ListView(mContext);            //    list.add(new deviceListItem("充電樁:"+rule.getCpNum()+"時間:"+rule.getTime(), true));                tv.setText("\t"+rule.getid()+"."+"充電樁:"+rule.getCpNum()+"  "+"Time:"+rule.getTime()+"\n");                tv.setTextColor(Color.BLUE);                tv.setTextSize(16);                llcontent.addView(tv);                Log.i("資料庫資料",""+rule.getCpNum()+rule.getTime());            }            Log.i("資料庫查詢","查詢資料庫成功");        }    }

(3)刪除所有

        btnDelected.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                llcontent.removeAllViews();                //deleDataDao.deleteAll();                int line=deleDataDao.deleteAll();                if (line==0) {                    Log.i("所有資料刪除成功", ""+line);                    Toast.makeText(mContext, "所有資料成功刪除", Toast.LENGTH_SHORT).show();                                    } else {                    Toast.makeText(mContext, "當前沒有資料", Toast.LENGTH_SHORT).show();                }                            }        });

 

Sqlite資料庫增刪查改操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.