sqlite的使用

 

创建数据库可以这样,但一般不这么使用


	//开发中一般不这样创建数据库,一般使用数据库工具类SqliteOpenHelper
	public void createDBUseContext(Context context){
		//通过上下文来创建数据库 这样创建的数据库直接在/data/data/包名/databases文件夹下
		context.openOrCreateDatabase("cc.db", Context.MODE_PRIVATE, null);
	}
	
	public void createDBUseSqliteDatabase(Context context){
		//通过SqliteDatabase来创建数据库 这样创建的数据库直接在/data/data/包名下
		File file = new File("/data/data/"+context.getPackageName(),"dd.db");
		SQLiteDatabase.openOrCreateDatabase(file, null);
	}
}

 

 

可以使用数据库工具类SqliteOpenHelper来创建

public class SqliteDatabaseService {
public class MySqliteOpenHelper extends SQLiteOpenHelper {
	
	
	private static SQLiteOpenHelper mInstance;
	private static final String name = "xx.db";
	
	public static SQLiteOpenHelper getInstance(Context context){
		if(mInstance == null){
			mInstance = new MySqliteOpenHelper(context, name, null, 1);
		}
		return mInstance;
	}

	private MySqliteOpenHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);
			}

	/**
	 * 用来创建表、视图、触发器、存储过程
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table fish(_id integer primary key autoincrement," +
				"name text)");

	}

	//数据库升级
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		
	}

}



数据库的增删改查

public class FishService {
	
	private SQLiteOpenHelper mOpenHelper;

	public FishService(Context context) {
		super();
		// TODO Auto-generated constructor stub
		mOpenHelper = MySqliteOpenHelper.getInstance(context);
	}


	//添加
	public void add(String name){
		//获取可写的数据库
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
			//插入数据
			database.execSQL("insert into fish(name) values(?)", new Object[]{name});
			database.close();
		}
	}
	
	//查询所有
	public List<Fish> queryAll(){
		List<Fish> fishs = new ArrayList<Fish>();
		SQLiteDatabase database = mOpenHelper.getReadableDatabase();
		if(database.isOpen()){
			//结果集
			Cursor c = database.rawQuery("select * from fish", null);
			while(c.moveToNext()){
				int _id = c.getInt(0);
				String name = c.getString(1);
				fishs.add(new Fish(_id, name));
			}
			//关闭
			c.close();
			database.close();
		}
		return fishs;
	}
	
	//更新
	public void update(Fish fish){
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
			database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
			database.close();
		}
	}
	
	//删除
	public void delete(int _id){
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
			database.execSQL("delete from fish where _id = ?", new Object[]{_id});
			database.close();
		}
	}
}

 

还有一种增删改查的方法

public class OtherFishService {
	
	private SQLiteOpenHelper mOpenHelper;

	public OtherFishService(Context context) {
		super();
		mOpenHelper = MySqliteOpenHelper.getInstance(context);
	}


	//添加
	public void add(String name){
		//获取可写的数据库
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
			//插入数据
//			database.execSQL("insert into fish(name) values(?)", new Object[]{name});
			ContentValues values = new ContentValues();
			values.put("name", name);
			database.insert("fish", "_id", values);
			database.close();
		}
	}
	
	//查询所有
	public List<Fish> queryAll(){
		List<Fish> fishs = new ArrayList<Fish>();
		SQLiteDatabase database = mOpenHelper.getReadableDatabase();
		if(database.isOpen()){
			//结果集
//			Cursor c = database.rawQuery("select * from fish", null);
			Cursor c = database.query(
					"fish",
					new String[]{"*"},
					null,
					null,
					null,
					null,
					null);
			while(c.moveToNext()){
				int _id = c.getInt(0);
				String name = c.getString(1);
				fishs.add(new Fish(_id, name));
			}
			//关闭
			c.close();
			database.close();
		}
		return fishs;
	}
	
	//更新
	public void update(Fish fish){
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
//		database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
			ContentValues values = new ContentValues();
			values.put("name", fish.name);
			database.update("fish",
					values,
					" _id = ?",
					new String[]{fish._id+""});
			database.close();
		}
	}
	
	//删除
	public void delete(int _id){
		SQLiteDatabase database = mOpenHelper.getWritableDatabase();
		if(database.isOpen()){
//			database.execSQL("delete from fish where _id = ?", new Object[]{_id});
			database.delete("fish", 
					" _id = ?",
					new String[]{_id+""});
			database.close();
		}
	}
}


数据类集

//创建此对象集合是为了给数据库查询,接收返回的对象
public class Fish {

	public int _id;
	public String name;
	public Fish() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Fish(int _id, String name) {
		super();
		this._id = _id;
		this.name = name;
	}
	@Override
	public String toString() {
		return "Fish [_id=" + _id + ", name=" + name + "]";
	}
	
}

 

测试类


 

public class FishServiceTest extends AndroidTestCase {

	public void testAdd() throws Exception{
		FishService fs = new FishService(getContext());
		for(int i = 0;i< 10;i++){
			fs.add("张三"+i);
		}
	}
	
	public void testQueryAll() throws Exception{
		FishService fs = new FishService(getContext());
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
	
	public void testUpdate() throws Exception{
		FishService fs = new FishService(getContext());
		fs.update(new Fish(1,"李四"));
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
	
	public void testDelete() throws Exception{
		FishService fs = new FishService(getContext());
		fs.delete(1);
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
}

 

public class OtherFishServiceTest extends AndroidTestCase {

	public void testAdd() throws Exception{
		OtherFishService fs = new OtherFishService(getContext());
		for(int i = 0;i< 10;i++){
			fs.add("张三"+i);
		}
	}
	
	public void testQueryAll() throws Exception{
		OtherFishService fs = new OtherFishService(getContext());
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
	
	public void testUpdate() throws Exception{
		OtherFishService fs = new OtherFishService(getContext());
		fs.update(new Fish(11,"李四"));
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
	
	public void testDelete() throws Exception{
		OtherFishService fs = new OtherFishService(getContext());
		fs.delete(11);
		List<Fish> list = fs.queryAll();
		for(Fish f:list){
			Log.i("i", f.toString());
		}
	}
}




 

发布了32 篇原创文章 · 获赞 4 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章