Android数据存储——SQLite数据库(模板)

本篇整合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; } }

很多其它交流可加Android技术讨论群:71262831

版权声明:本文博主原创文章,博客,未经同意不得转载。

posted @ 2015-10-06 09:21  blfshiye  阅读(380)  评论(0)    收藏  举报