sqlite 数据库驱动框架

面向对象数据库框架设计 

public void saveUser(User user){
	DBHelper dbHelper=new DBHelper(this);
	SQLiteDatabase db=dbHelper.getWritableDatabase();
	db.execSQL("create table if not exists db_user(name,varchar(20),password varchar(10),)");
	ContentValues values=new ContentValues();
	values.put("name",user.getName());
	values.put("password",user.getPassword());
	db.beginTransaction();
	int scheduleID=-1;
	try{
	db.insert("schedule",null,values);
	db.setTransactionSuccessful();
	}finally{
	}
	db.endTransaction();
	db.close();
}

 

1.调用层不关心数据的创建和在哪里创建
2.关心表的创建
3.不关心sql语句的拼写,对象丢给你,你帮我存入数据库

hashMap<String,String>=getValues(User)
ContentValues values=getContentValues();

目录结构

db--|
db--|---annotion(注解目录)
db--|-------|
db--|-----DbTable
 

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DbTable(){
	String value();
}

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DbField{
	String value();
}

public interface IBaseDao<T>{
	Long insert(T entity);
	Long update(T entity,T where);
	delete();	
	select();
}
public abstract class BaseDao<T> implements IBaseDao{
	private SQLiteDatabase database;
	protected boolean init(Class<T> entity,SQLiteDatabase sqLiteDatabase){
		database=sqLiteDatabase;
	}
	public Long insert(T entity){
		return null;
	}
	public Long update(T entity,T where){
		return null;
	}
}
public class BaseDaoFactory{
	private String sqliteDatabasePath;
	private SQLiteDatabase sqlLiteDatabase;
	public BaseDaoFactory(){
		sqliteDatabasePath=Enviroment.getDataDirectory().getAbsolutePath()+"user.db";
		openDatabase();
	}	
	public void openDatabase(){
		this.sqLiteDatabase=SQLiteDatabase.openOrCreateDatabase(sqliteDatabasePath,null);
	}
	public synchronized<T extends BaseDao<M>,M> T getDataHelper(Class<T> class,Class <M> entityClass );
	BaseDao baseDao=null;
	try{
		baseDao=Class.newInstance();
		baseDao.init();
	}catch(){
	
	}
}

@DbTable("tb_common_user")
public class User{
	@DbField("tb_name")
	public String name;

	@DbField("tb_password")
	public String password;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值