• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

XAndrDB: 安卓端的数据库操作框架ORM,安卓端的MyBatis。

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

XAndrDB

开源软件地址:

https://gitee.com/xcode_xiao/XAndrDB

开源软件介绍:

#XAndrDB安卓端开源数据库ORM操作框架。

##使用说明:在使用本框架之前首先将本项目根目录下的本项目引入到你的项目中,然后。在你的app的AndroidManifest.xml中配置:

    <application	android:name="com.xcode.xandrdb.Session.SessionApplication"	……	>

####这时候就该考虑使用问题了。不多说,直接贴代码:

package com.xcode.xandrdb.mapper;	import com.xcode.xandrdb.User;import com.xcode.xandrdb.annotation.Create;import com.xcode.xandrdb.annotation.Delete;import com.xcode.xandrdb.annotation.Insert;import com.xcode.xandrdb.annotation.Select;import com.xcode.xandrdb.annotation.Update;import com.xcode.xandrdb.annotation.name;	public interface test	//插入的操作	@Insert("INSERT INTO xiaolei ('sname', 'snumber') VALUES ('xiaolei', 'xiaolei')")	public String insert();			//删除操作	@Delete("delete from xiaolei where id = #{id}")	public String delete(@Param("id")int id);			//更新操作	@Update("UPDATE xiaolei SET sname='xiaolei2', snumber='xiaolei2' WHERE (_id=#{id})")	public String update(@Param("id")int id);		//查询操作	@Select("SELECT * FROM xiaolei WHERE _id = #{id}")	public User[] select(@Param("id")int id);			//新建操作	@Create("create table #{user.name}(_id integer primary key autoincrement,sname text,snumber text)")	public String create(@Param("user")User user);}

这里只是定义了一系列的数据库操作action的Mapper。那我们看看怎么使用这些Mapper:

Session session = SessionFactory.getSession(new SessionConfig().setDBName("xiaolei"));test t1 = session.getMapper(test.class);User users[] = t1.select(1);System.out.println(users);

支持数据缓存,有时候,我需要在两秒内对查询到的数据进行缓存,不需要每次要数据就去数据库中查询。那么这个特性可以帮助你。

	//查询操作	@Catch(500)	@Select("SELECT * FROM xiaolei where sname=#{name}")	public List<User> select(@Param("name")String name);这个@Catch(500)注解 参数是你自己设置的缓存的时间不写参数默认为 2 * 1000 ms支持事务有时候我需要批量向数据库中插入大量的数据可是大量数据的写入会导致整个APP卡顿那么为了解决这个问题 你可以这样	@Transation	@Insert("INSERT INTO xiaolei ('sname', 'snumber') VALUES ('xiaolei', 'xiaolei')")	public String insert();

当你需要进行大量数据的操作的时候,你可以使用 @Transation 注解来解决这个问题。

经测试 在模拟器中循环插入五十条数据,没有开启 Transation 的时候 耗时:220ms

开启了Transation的时候,耗时:7ms。并且内部使用Handler进行异步操作。绝对不会影响到APP的流畅性。

当然在你操作完成之后别忘了使用 session.commit();。否则是不会生效的。

是的,所有的数据库操作都必须使用 Session 对象,去操作。然后使用 Session 对象拿到mapper,内部通过动态代理操作返回你一个mapper对象,然后你操作你的mapper里面定义的方法就是在操作数据库了。

###这是一个完全面向切面,使用 自定义注解+反射+动态代理 结合在一起发挥强大功能的数据库框架。

##曾经..曾经有一份至真嘅爱情摆喺我面前,但我冇去珍惜,到冇咗嘅时候先至后悔莫及,尘世间最痛苦莫过于此。如果个天可以畀个机会我返转头嘅话,我会同个女仔讲我爱佢!如果 系都要喺呢份爱加上一个期限,我希望系一万年!别人笑我太疯癫,我笑别人看不穿,不见五陵豪杰墓,无花无酒锄作田。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap