db部分--针对安卓sqlite的半自动化封装
2013-08-11 00:00
120 查看
1、简介
db部分是对sqlite数据操作的半自动化封装。方便sql语法的升级。在操作数据库方面,有点类似Spring的轻量级封装。API可以参照keel。
2、使用如下
(1)首先在assets放入需要执行的语法,例如下面我放了3个语法,以后每次更新应用,你就可以加一份语法,
(2)在应用启动的时刻初始化数据库,例如可以在自定义Application中初始化:
BasicDao类就可以了,如下我定义个UserDao:
3、结尾
总的来说,这个不是一个全自动化的ORM框架。之所以不封装成全自动化的ORM,是因为,个人认为还是自己写Sql语法比较放心,把语法交给ORM框架去生成一直觉得不可靠。可以愚见了。不过还是那句话,方便是向左,灵活是向右。我们要做的就是不停的修改框架,折中而取之。这个框架还有一个隐藏类,BasicDaoAdapter,继承它可以直接使用sqlite的查询API,但是要注意,使用完后需要自己close源。有兴趣的同学可以试一下。BasicDaoAdapter更面向底层,如果说BasicDao是把半自动步枪。BasicDaoAdapter他们就是把手枪。
db部分是对sqlite数据操作的半自动化封装。方便sql语法的升级。在操作数据库方面,有点类似Spring的轻量级封装。API可以参照keel。
2、使用如下
(1)首先在assets放入需要执行的语法,例如下面我放了3个语法,以后每次更新应用,你就可以加一份语法,
(2)在应用启动的时刻初始化数据库,例如可以在自定义Application中初始化:
public class StartApplication extends Application { @Override public void onCreate() { super.onCreate(); // 初始化数据库版本号和数据库名,3表示会自动执行从1-3的语法,demo_db为使用数据库名字 DBHelper.init(3, "demo_db"); } }(3)然后具体使用,是继承
BasicDao类就可以了,如下我定义个UserDao:
public class UserDao extends BasicDao { public UserDao(Context context) { super(context); } private static final String FIND_USERS = "SELECT id,name FROM table_user"; public List<User> findUserList() { return query(FIND_USERS, null, new MultiRowMapper<User>() { @Override public User mapRow(Cursor rs, int arg1) throws SQLException { User User = new User(); user.setName(rs.getString(rs.getColumnIndex("name"))); user.setId(rs.getString(rs.getColumnIndex("id"))); return user; } }); } }(4)最后就可以在Activity中或者别的地方使用了。
UserDao userDao = new UserDao(this);//注意这里可以使用IOC部分,使用注解注入 List<User> userList = userDao.findUserList();
3、结尾
总的来说,这个不是一个全自动化的ORM框架。之所以不封装成全自动化的ORM,是因为,个人认为还是自己写Sql语法比较放心,把语法交给ORM框架去生成一直觉得不可靠。可以愚见了。不过还是那句话,方便是向左,灵活是向右。我们要做的就是不停的修改框架,折中而取之。这个框架还有一个隐藏类,BasicDaoAdapter,继承它可以直接使用sqlite的查询API,但是要注意,使用完后需要自己close源。有兴趣的同学可以试一下。BasicDaoAdapter更面向底层,如果说BasicDao是把半自动步枪。BasicDaoAdapter他们就是把手枪。
相关文章推荐
- db部分--针对安卓sqlite的半自动化封装
- appium安卓自动化的 常用driver方法封装
- ios sqlite3数据库的封装-自己封装的,针对锁死database is closed的解决和预防
- 安卓实训第十二天(补充部分)---Sqlite数据库的创建和改变,以及使用SQLiteDataBase完成CRUD操作
- 利用反射实现对sqlite3数据库的crud(增删改查)操作的一个baseAndroidDao封装,安卓开发中
- sqlite封装库SmartDB1.3发布
- Android中设计模式--策略模式(封装会变化的算法部分,面向接口不针对实现)
- (原创)sqlite封装库SmartDB1.3发布
- python封装安卓查找元素方法V1.0
- 分享android打开指定位置sqlite db的一个容错处理技巧
- DexClassLoader(加载dex)+AssetManager(加载resources.arsc)+SQLiteDatabase(加载db)
- 9.5 sqlite3--SQLite数据库DB-API2.0接口
- 安卓笔记:限制行数显示,限制字数显示,多余部分省略号表示
- 安卓案例:利用SQLiteDatabase操作数据库与表
- 面向对象(初级)个人总结 第二部分 封装
- 安卓客户端的这部分内容是通过怎样的方式从服务器获取的
- 201512011linux系统日常管理第三部分(使用tshark抓包分析http请求,iptables 针对一个网段)扩展1
- 安卓开发中SQLite的使用
- 转:分布式 DBA:存储、I/O 和 DB2,第 1 部分(针对在网络存储环境中部署 DB2 数据库的建议)(1)
- Sqlite 反射机制封装数据库