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

mybatisext: Mybatis扩展项目,内嵌有通过activerecord风格操作数据库的功能。 ...

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

开源软件名称:

mybatisext

开源软件地址:

https://gitee.com/srb/mybatisext

开源软件介绍:

MybatisExt

技术讨论 QQ 群 492238239

http://www.oschina.net/p/mybatisext

MybatisExt项目扩展自Mybatis,具有以下特点:

一、运行环境支持

通过指定虚拟机参数,自动加载properties文件中的指定代码块(velocity实现)各种耗性能的操作在生产环境下不会执行

二、内置的拦截器(plugin)

  1. SQL语句打印和性能监控功能(SQLPrintPlugin)
  2. 主键自动生成功能(IdentityPlugin)
  3. MySQL查询语句性能分析功能(IndexingPlugin)
  4. 分页拦截器(PagingPlugin)
  5. XML文件修改后自动加载功能(XMLMapperLoader)
  6. 批量处理拦截器(BatchPlugin)

三、扩展Mybatis,实现拦截Mapper接口方法功能

原生的MyBatis是不能访问映射接口中的方法的,这使自己在方法中加注解无法访问,通过配置拦截器可以实现对接口中方法的拦截。

四、内置默认生成的增、删、改、查方法

Mapper接口继承Table或DB自动添加系统自带方法进行简单的操作,如果不合适可以继续在接口中和xml文件中添加自定义方法。

新增通用Mapper处理,通过继承实现大部分的增删改查操作。

五、自带了entity、mapper和xml生成工具

自动生成代码工具,不需要配置,可根据需求自行修改AutoEntityUtil或者EntityUtil(在test项目里面)

六、内置ActiveRecord功能

不用任何配置也可以操作数据库,适合导入导出数据,有如下功能:

  1. 支持原生SQL语句
  2. 支持MyBatis脚本语句
  3. 支持对象操作
  4. 支持自定义字段和属性映射
  5. 简单的分页方言支持

对数据库操作

//创建数据库连接DB db = MybatisExt.open("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:db_name", "sa", "");//执行创建表操作db.update("create table person(id bigint primary key,name varchar(30),age int)");//执行sql插入操作int count = db.update("insert into person(id,name,age)values(?,?,?)", IdWorker.getId(), "bobo", 28);//执行MyBatis脚本插入操作Record rec = new Record();rec.put("id", IdWorker.getId());rec.put("name", "hh");rec.put("age", 30);count = db.updateScript("insert into person(id,name,age)values(#{id},#{name},#{age})", rec);//sql脚本查询List<Record> list = db.list("select id,name,age from person where name=?", "bobo");List<Person> listPerson = db.list("select * from person where name=?", Person.class, "bobo")//MyBatis脚本查询listPerson = db.queryScript("select * from person where name=#{name}", Person.class, "bobo");

对数据库表操作

//获取表操作对象Table<Person, Long> table = db.active("person", Person.class, "id", Long.class);//插入操作InsertSQL insertSql = new InsertSQL("id", "name", "age").values(1, "bobo", 28);int count = table.excute(insertSql);count = table.update("insert into person(id,name,age)values(?,?,?)", 2, "hh", 25);Person person = new Person();person.setId(3L);person.setAge(26);person.setName("wahaha");count = table.updateScript("insert into person(id,name,age) values(#{id},#{name},#{age})", person);//查询操作List<Person> personList = table.list("select * from person");personList = table.queryScript("select * from person where name=#{name}", "bobo");Person persion = table.one("select * from person limit 1");personList = table.queryScript("select * from person where name=#{name}", "bobo");SelectSQL selectSql = new SelectSQL("id", "name").where("name", "bobo").and("id", 1L).orderBy("id", "asc");selectSql=table.excute(selectSql);

无sql操作

DB db = MybatisExt.open("org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:db_name", "sa", "");Table<Record, Long> table = db.active("person");//插入Record rec=new Record();rec.put("id", IdWorker.getId());rec.put("name", "hh");rec.put("age", 30);table.getInsert().insert(rec);//查询rec=table.getSelect().one("name","hh");//更新table.getUpdate().update(...);//删除table.getDelete().delete(...);

具体可参见源码中的测试用例

<dependency>    <groupId>com.ext-ext</groupId>    <artifactId>mybatis-ext</artifactId>    <version>0.0.4</version></dependency>

欢迎使用并提交问题.


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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