Android SQLite创建、添加、查询

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

发表评论