easymybatisMybatis 增强类库

联合创作 · 2023-09-30 20:57

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


easymybatis的特性如下:



  • 无需编写xml文件即可完成CRUD操作。

  • 支持多表查询、聚合查询、分页查询(支持多种数据库)。

  • 支持批量添加,指定字段批量添加。

  • 支持Dao层访问控制,如某个dao只有查询功能,某个dao有crud功能等。

  • 支持自定义sql,sql语句可以写在配置文件中,同样支持mybatis标签。

  • 支持mysql,sqlserver,oracle,其它数据库扩展方便(增加一个模板文件即可)。

  • 使用方式不变,与Spring集成只改了一处配置。

  • 轻量级,无侵入性,可与传统mybatis用法共存。

  • 没有修改框架源码(无插件),采用动态代码生成实现功能。


架构组成


easymybatis的架构如下:



运行流程


easymybatis的运行流程图:




  1. 服务器启动的时候easymybatis负责扫描Dao.java。

  2. 扫描完成后解析出Dao.class以及实体类Entity.class。

  3. 代码生成组件根据Dao.class和Entity.class生成mapper文件内容,生成方式由velocity模板指定。

  4. 把mapper文件内容转化成Resource对象设置到SqlSessionFactory中。


快速开始


1 创建springboot项目


访问http://start.spring.io/ 生成一个springboot空项目,输入Group,Artifact点生成即可,如图: 点击Generate Project,下载demo.zip


2 导入项目


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


3 添加maven依赖


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






net.oschina.durcframework



easymybatis-spring-boot-starter



1.4.5






org.springframework.boot



spring-boot-starter-web






mysql



mysql-connector-java



runtime




4 添加数据库配置


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


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

5 添加Java文件


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


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 :


@Table(name = "t_user")
public class TUser {
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; // ID
private String username; // 用户名
private Byte state; // 状态
private Boolean isdel; // 是否删除
private String remark; // 备注
private Date addTime; // 添加时间

// 省略 getter setter
}


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



  • TUserDao.java :


public interface TUserDao extends CrudDao
{
}


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


6 添加测试用例


public class TUserDaoTest extends DemoApplicationTests {

@Autowired
TUserDao dao;

@Test
public void testInsert() {
TUser user = new TUser();
user.setIsdel(false);
user.setRemark("testInsert");
user.setUsername("张三");

dao.save(user);

System.out.println("添加后的主键:" + user.getId());
}

@Test
public void testGet() {
TUser user = dao.get(3);
System.out.println(user);
}

@Test
public void testUpdate() {
TUser user = dao.get(3);
user.setUsername("李四");
user.setIsdel(true);

int i = dao.update(user);
System.out.println("testUpdate --> " + i);
}

@Test
public void testDel() {
TUser user = new TUser();
user.setId(3);
int i = dao.del(user);
System.out.println("del --> " + i);
}
}

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


更多例子可参考TUserDaoTest.java。重点关注Dao,Query对象即可。


如果您不想从头开始搭项目的话,这里有个搭建好的demo项目可以为您使用。



两个版本,一个是基于springboot,一个是传统springmvc,推荐springboot。

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报