本篇整合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);}@Overridepublic 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);}@Overridepublic 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
版权声明:本文博主原创文章,博客,未经同意不得转载。