1、创建一个DatabaseHelper,继承自SQLiteOpenHelper,SQLiteOpenHelper就是一个数据库辅助类。当程序调用getReadableDatabase()或者getWritableDatabase()方法时,如果没有数据会自动创建数据库。代码如下:
public class DatabaseHelper extends SQLiteOpenHelper { private static final String TABLE_NAME = "luchg_health";//数据库名称 private static final int DATABASE_VERSION = 1;//数据库版本 public DatabaseHelper(Context context) { super(context, TABLE_NAME, null, DATABASE_VERSION); } //创建数据库 @Override public void onCreate(SQLiteDatabase db) { //sql String sql = "create table "+ TABLE_NAME +" (" + "id text not null, title text not null, content text not null, " + "icon text not null, path text not null, note text not null)"; Log.i("创建数据库", sql); //执行sql db.execSQL(sql); } //数据库升级 @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { // TODO Auto-generated method stub } }
2、数据库添加数据
public void initData(SQLiteDatabase db){ //添加sql String sql = "insert into " + TABLE_NAME + "(" + "id, title, content, icon, path, note) values " + "('zhike', '止咳推拿', 'zhikezhikezhike', 'icon', 'path', 'note')"; //打印日志 Log.i("初始化数据", sql); //执行sql db.execSQL(sql); }
3、查询。在查询时我们会用到Cursor,Cursor是Android中非常有用的接口,通过Cursor我们可以对从数据库查询出来的结果集进行随机的读写访问。
public List<Map<String,Object>> getData(){ List<Map<String,Object>> items = null; items = new ArrayList<Map<String,Object>>(); Map<String,Object> item = null; //创建DatabaseHelper类 DatabaseHelper databaseHelper = new DatabaseHelper(getActivity()); // 当数据库不存在时自动创建数据库 SQLiteDatabase db = databaseHelper.getReadableDatabase(); String col[] = {"id", "title"}; Cursor cur = db.query("luchg_health", col, null, null, null, null, null); //对Cursor查询结构遍历 for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()){ item = new HashMap<String, Object>(); item.put("id",cur.getString(cur.getColumnIndex("id"))); item.put("title",cur.getString(cur.getColumnIndex("title"))); items.add(item); } return items; }
Cursor query方法参数:
1、第一个参数是数据库中表的名字
2、第二个参数是要返回的的列的名称
3、第三个参数是selection,相当于sql语句中的where部分,如果要查询所有,为null即可
4、第四个参数是selectionArgs,在selection中会用到“?”,那么在selectionArgs中定义的字符串会替换selection中的“?”
5、第五个参数是groupBy,就是sql中的group by
6、第六个参数是having,sql中的having
7、第七个参数是orderBy,sql中的order by