easymybatis——mybatis开发利器
来源:互联网 发布:米奥软件 编辑:程序博客网 时间:2024/06/05 09:02
1. 介绍
easymybatis是一个mybatis增强类库,目的为简化mybatis的开发,让开发更高效。
- git地址:easymybatis
- demo地址:demo with springboot
- 文档地址:easymybatis开发文档
easymybatis的特性如下:
- 无需编写xml文件即可完成CRUD操作。
- 支持多表查询、聚合查询、分页查询(支持多种数据库)。
- 支持批量添加,指定字段批量添加。
- 支持Dao层访问控制,如某个dao只有查询功能,某个dao有crud功能等。
- 支持自定义sql,sql语句可以写在配置文件中,同样支持mybatis标签。
- 支持mysql,sqlserver,oracle,其它数据库扩展方便(增加一个模板文件即可)。
- 使用方式不变,与Spring集成只改了一处配置。
- 支持与springboot集成。
- mybatis参数设置灵活,继承mybatis官方设置方式。
- 轻量级,无侵入性,可与传统mybatis用法共存。
- 没有修改框架源码(无插件),采用动态代码生成实现功能。
1.2 架构组成
easymybatis的架构如下:
1.3 运行流程
easymybatis的运行流程图:
- 服务器启动的时候easymybatis负责扫描Dao.java。
- 扫描完成后解析出Dao.class以及实体类Entity.class。
- 代码生成组件根据Dao.class和Entity.class生成mapper文件内容,生成方式由velocity模板指定。
- 把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,添加如下依赖:
<!-- easymybatis的starter --><dependency> <groupId>net.oschina.durcframework</groupId> <artifactId>easymybatis-spring-boot-starter</artifactId> <version>1.4.5</version></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency>
2.4 添加数据库配置
在application.properties中添加数据库配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullspring.datasource.username=rootspring.datasource.password=root
2.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<TUser> {}
TUserDao继承CrudDao即可,这样这个Dao就拥有了CRUD功能。
2.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); }}
然后运行单元测试,运行成功后表示项目已经搭建完毕了。
最后项目结构图:
- 更多内容请参考easymybatis开发文档
阅读全文
0 0
- 关于easymybatis——mybatis开发利器
- easymybatis——mybatis开发利器
- 【p6spy】程序员开发利器P6spy——打印执行sql语句,mybatis、ibatis、Hibernate均可使用
- 前端开发利器—FIDDLER
- Web开发利器——IEDevToolBar
- CSS开发利器——NetBeans
- swift资源库——开发利器 Playground
- SqlServer开发利器—SQL Prompt5
- 移动开发利器——APICloud开发平台介绍
- Web开发又一利器之——Fiddler
- Python开发利器——wingIDE破解技巧
- 轻轻谈一下seaJs——模块化开发的利器
- 开发社交应用的利器——Ejabberd 一瞥
- html5开发利器——sublimetext2+emmet插件
- Sketch插件——移动端UI开发利器Orion3
- 【高效生活】合作开发的利器——初识SVN
- 深海油气开发利器——水下机器人
- Web开发又一利器之——Fiddler
- android popuwindow点击外部窗口不消失的实例,popuwindow的用法 [复制链接]
- 使用系统的tabbar的字体颜色设置。badge的红色过大设置
- canvas系列教程03-柱状图项目1
- 如何获取手机性能测试数据FPS
- android屏幕亮度调节
- easymybatis——mybatis开发利器
- siebel编程
- Java中String的不可变性和创建String的内存变化
- An overview of gradient descent optimization algorithms
- jquery指定输入框获得焦点
- canvas系列教程04-柱状图项目2
- ffmpeg 的那些坑
- scau 9716 矩形的并
- 顺序容器初识