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;
		
	}		
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值