easymybatis——mybatis开发利器

x33g5p2x  于2021-12-28 转载在 其他  
字(3.4k)|赞(0)|评价(0)|浏览(322)

1. 介绍

easymybatis是一个mybatis增强类库,目的为简化mybatis的开发,让开发更高效。

easymybatis的特性如下:

  • 无需编写xml文件即可完成CRUD操作。
  • 支持多表查询、聚合查询、分页查询(支持多种数据库)。
  • 支持批量添加,指定字段批量添加。
  • 支持Dao层访问控制,如某个dao只有查询功能,某个dao有crud功能等。
  • 支持自定义sql,sql语句可以写在配置文件中,同样支持mybatis标签。
  • 支持mysql,sqlserver,oracle,其它数据库扩展方便(增加一个模板文件即可)。
  • 使用方式不变,与Spring集成只改了一处配置。
  • 支持与springboot集成。
  • mybatis参数设置灵活,继承mybatis官方设置方式。
  • 轻量级,无侵入性,可与传统mybatis用法共存。
  • 没有修改框架源码(无插件),采用动态代码生成实现功能。

1.2 架构组成

easymybatis的架构如下:

1.3 运行流程

easymybatis的运行流程图:

  1. 服务器启动的时候easymybatis负责扫描Dao.java。
  2. 扫描完成后解析出Dao.class以及实体类Entity.class。
  3. 代码生成组件根据Dao.class和Entity.class生成mapper文件内容,生成方式由velocity模板指定。
  4. 把mapper文件内容转化成Resource对象设置到SqlSessionFactory中。

2. 快速开始

2.1 创建springboot项目

访问http://start.spring.io/ 生成一个springboot空项目,输入Group,Artifact点生成即可,如图:

点击Generate Project,下载demo.zip

2.2 导入项目

将下载的demo.zip解压,然后导入项目。eclipse中右键 -> Import… -> Existing Maven Project,选择项目文件夹。导入到eclipse中后等待maven相关jar包下载。

2.3 添加maven依赖

jar包下载完成后,打开pom.xml,添加如下依赖:

  1. <!-- easymybatis的starter -->
  2. <dependency>
  3. <groupId>net.oschina.durcframework</groupId>
  4. <artifactId>easymybatis-spring-boot-starter</artifactId>
  5. <version>1.4.5</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-web</artifactId>
  10. </dependency>
  11. <dependency>
  12. <groupId>mysql</groupId>
  13. <artifactId>mysql-connector-java</artifactId>
  14. <scope>runtime</scope>
  15. </dependency>

2.4 添加数据库配置

在application.properties中添加数据库配置

  1. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  2. spring.datasource.url=jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
  3. spring.datasource.username=root
  4. spring.datasource.password=root

2.5 添加Java文件

假设数据库中有张t_user表,DDL如下:

  1. CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', `username` varchar(255) DEFAULT NULL COMMENT '用户名', `state` tinyint(4) DEFAULT NULL COMMENT '状态', `isdel` bit(1) DEFAULT NULL COMMENT '是否删除', `remark` text COMMENT '备注', `add_time` datetime DEFAULT NULL COMMENT '添加时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

我们加入对应的实体类和Dao:

  • TUser.java :
  1. @Table(name = "t_user")
  2. public class TUser {
  3. @Id
  4. @Column(name="id")
  5. @GeneratedValue(strategy = GenerationType.IDENTITY)
  6. private Integer id; // ID
  7. private String username; // 用户名
  8. private Byte state; // 状态
  9. private Boolean isdel; // 是否删除
  10. private String remark; // 备注
  11. private Date addTime; // 添加时间
  12. // 省略 getter setter
  13. }

实体类文件采用和hibernate相同的方式,您可以使用我们的代码生成工具生成
https://gitee.com/durcframework/easymybatis-generator

  • TUserDao.java :
  1. public interface TUserDao extends CrudDao<TUser> {
  2. }

TUserDao继承CrudDao即可,这样这个Dao就拥有了CRUD功能。

2.6 添加测试用例

  1. public class TUserDaoTest extends DemoApplicationTests {
  2. @Autowired
  3. TUserDao dao;
  4. @Test
  5. public void testInsert() {
  6. TUser user = new TUser();
  7. user.setIsdel(false);
  8. user.setRemark("testInsert");
  9. user.setUsername("张三");
  10. dao.save(user);
  11. System.out.println("添加后的主键:" + user.getId());
  12. }
  13. @Test
  14. public void testGet() {
  15. TUser user = dao.get(3);
  16. System.out.println(user);
  17. }
  18. @Test
  19. public void testUpdate() {
  20. TUser user = dao.get(3);
  21. user.setUsername("李四");
  22. user.setIsdel(true);
  23. int i = dao.update(user);
  24. System.out.println("testUpdate --> " + i);
  25. }
  26. @Test
  27. public void testDel() {
  28. TUser user = new TUser();
  29. user.setId(3);
  30. int i = dao.del(user);
  31. System.out.println("del --> " + i);
  32. }
  33. }

然后运行单元测试,运行成功后表示项目已经搭建完毕了。

最后项目结构图:

相关文章