日期:2014-05-16 浏览次数:20647 次
1.SQLLite简介:
? ? ? ? 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上 sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型
?
2. 使用详解:
SQLiteOpenHelper: ?对SQLLite数据库操作的辅助工具类.
?
变量:
public static final String KEY_ID = "stock_id";// 数据库id public static final String CODE = "stock_code";// 各类类型id public static final String NAME = "stock_name"; public static final String SIMPLE = "stock_simple"; private String TAG = "StockDBAdapter" ; private static final String DATABASE_CREATE = " create table if not exists " + DATABASE_TABLE + " (" + KEY_ID + " integer primary key autoincrement," + CODE + " varchar, " + NAME + " varchar, " + SIMPLE + " varchar); ";?
一、创建和打开数据库:
public StockDBAdapter(Context ct) { this.context = ct; dbHelper = new DBHelper(context, DATABASE_NAME, null, DATABASE_VERSION, DATABASE_NAME, DATABASE_CREATE); }
?? 二、打开数据库:
public List<Map<String , String>> selectStock(String key){ if(!db.isOpen()){ db = dbHelper.getReadableDatabase(); } List<Map<String , String>> stockList = new ArrayList<Map<String , String>>(); Cursor cur = null; if(null!=key && !"".equals(key)){ //查询的列字段名 String [] columns = {CODE , NAME , SIMPLE}; //查询条件 String where = CODE+ " like ? or "+NAME+" like ? or "+SIMPLE+" like ? "; //查询参数 String [] selectArgs = {key+"%" , key+"%" , key+"%"}; //执行查询 cur = db.query(DATABASE_TABLE, columns, where , selectArgs, null, null, null); cur.moveToFirst(); //循环读取数据 while(!cur.isAfterLast()){ Map<String , String> stockMap = new HashMap<String , String>(); String code = cur.getString(0); String name = cur.getString(1)+"("+code+")"; stockMap.put("code" , code); stockMap.put("name" , name); stockList.add(stockMap); cur.moveToNext(); } cur.close(); close(); return stockList; } return null; }??