Android資料存放區——SQLite資料庫(模板),androidsqlite

來源:互聯網
上載者:User

Android資料存放區——SQLite資料庫(模板),androidsqlite

本篇整合Android資料庫的使用,以儲存一個實體類為例子。

先來看下資料庫語句:

ORM:關聯性物件映射

增加資料:

 ContentValues values = new ContentValues(); values.put("name", "小麗"); values.put("phone", "110"); mDB.insert("student",//表名             null, //規避插入語句的錯誤             values );//插入的值 

刪除資料:

mDB.delete("student", //表名           "name =?",//條件陳述式           new String[]{"小麗"});//條件陳述式的預留位置

修改資料:

 ContentValues values = new ContentValues();  values.put("phone", "10086");  mDB.update("student",//表名              values, //要修改的值              "name =?",//條件陳述式              new String[]{"小麗"});

查詢資料:

 Cursor cursor = mDB.query("student",//表名                null,//查詢的欄位                null,//條件陳述式                null,//條件陳述式的預留位置                null,//分組語句                null,//分組條件                null);//排序  boolean toFirst = cursor.moveToFirst();  while(toFirst){        String name = cursor.getString(cursor.getColumnIndex("name"));        String phone = cursor.getString(cursor.getColumnIndex("phone"));            MyData myData = new MyData(name, phone);            dataList.add(myData);            toFirst = cursor.moveToNext();        }       

下面是資料庫建立及使用步驟

1、方法調用

private DBMang_Order dbMang_Order; dbMang_Order=DBMang_Order.getInstance(getApplicationContext());//查詢ArrayList<OrderUncheck> uncheckList = dbMang_Order.query();//刪除dbMang_Order.delete(orderNo);//增加dbMang_Order.insert(new OrderUncheck(orderNo, account, action));//修改dbMang_Order.update(new OrderUncheck(orderNo, account, action));

2、首先建立要儲存的實體類

public class OrderUncheck {    String orderNo;    double account;    int action;    public String getOrderNo() {        return orderNo;    }    public void setOrderNo(String orderNo) {        this.orderNo = orderNo;    }    public double getAccount() {        return account;    }    public void setAccount(double account) {        this.account = account;    }    public int getAction() {        return action;    }    public void setAction(int action) {        this.action = action;    }    public OrderUncheck(String orderNo, double account, int action) {        super();        this.orderNo = orderNo;        this.account = account;        this.action = action;    }}

3、建立資料庫

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MySQL_Order extends SQLiteOpenHelper {     private static final String name = "count"; //資料庫名稱         private static final int version = 1; //資料庫版本       //第三個參數CursorFactory指定在執行查詢時獲得一個遊標執行個體的工廠類,設定為null,代表使用系統預設的工廠類      public MySQL_Order(Context context) {        super(context, name, null, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        String sql="CREATE TABLE neworder (_id INTEGER PRIMARY KEY AUTOINCREMENT,orderNo VARCHAR(200),account VARCHAR(19100),action VARCHAR(200))";                     db.execSQL(sql);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}

4、代碼中被調用的方法在這個類:增刪改查

public class DBMang_Order {    private static DBMang_Order mDbManager=new DBMang_Order();    private static SQLiteDatabase mDb;    private static Context context;    private  DBMang_Order() {    }    public static synchronized DBMang_Order getInstance(Context context){        DBMang_Order.context = context;        if(mDb==null){            MySQL_Order mySQL = new MySQL_Order(context);            mDb = mySQL.getWritableDatabase();        }        return mDbManager;    }       interface NewTable{        String TABLE_NAME="neworder";        String TABLE_COLUMN_orderNo="orderNo";        String TABLE_COLUMN_account="account";        String TABLE_COLUMN_action="action";    }    //增    public void insert(OrderUncheck info){              ContentValues values=new ContentValues();        values.put(NewTable.TABLE_COLUMN_orderNo, info.getOrderNo());        values.put(NewTable.TABLE_COLUMN_account, info.getAccount());        values.put(NewTable.TABLE_COLUMN_action, info.getAction());        Log.w("mDb.insert", ""+info);        Log.w("mDb.insert",""+ values);        mDb.insert(NewTable.TABLE_NAME, null, values);          }           //刪    public void delete(String orderNo) {        Log.w("delete", orderNo);        mDb.delete(NewTable.TABLE_NAME, NewTable.TABLE_COLUMN_orderNo+"=?", new String[]{orderNo});    }    //改    public void update(OrderUncheck info){        ContentValues values = new ContentValues();        values.put(NewTable.TABLE_COLUMN_account, info.getAccount());        mDb.update(NewTable.TABLE_NAME, values, NewTable.TABLE_COLUMN_orderNo+"=? and "+NewTable.TABLE_COLUMN_orderNo+"=?", new String[]{String.valueOf(info.getOrderNo()),""+info.getAccount()});    }    //查    public ArrayList<OrderUncheck> query(){        Cursor cursor = mDb.query(NewTable.TABLE_NAME, null, null, null, null, null, null);        ArrayList<OrderUncheck> list=new ArrayList<OrderUncheck>();        boolean toFirst = cursor.moveToFirst();                 while (toFirst) {                                   String orderNo = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_orderNo));            String account = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account));            String action = cursor.getString(cursor.getColumnIndex(NewTable.TABLE_COLUMN_account));            double accountd = Double.parseDouble(account);            int actiond=Integer.parseInt(action);            OrderUncheck order = new OrderUncheck(orderNo, accountd,actiond);            list.add(order);            toFirst=cursor.moveToNext();        }        cursor.close();        return list;    }       }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.