Mybatis 增强类库 easymybatis

原创
2017/09/05 15:09
阅读数 179

简单介绍

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

git:https://git.oschina.net/durcframework/easymybatis

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中。

快速上手

  • 一. 第一步自行搭建一个mybatis的项目,并且使用spring-mybatis插件
  • 二. pom.xml加入easymybatis依赖
<dependency>
	<groupId>net.oschina.durcframework</groupId>
	<artifactId>easymybatis</artifactId>
	<version>最新版本</version>
</dependency>
  • 三. 替换org.mybatis.spring.SqlSessionFactoryBean
<!-- 替换SqlSessionFactoryBean -->
<bean id="sqlSessionFactory"
	class="net.oschina.durcframework.easymybatis.ext.SqlSessionFactoryBeanExt">
	<property name="dataSource" ref="dataSource" />
	<property name="configLocation">
		<value>classpath:mybatis/mybatisConfig.xml</value>
	</property>
	<property name="mapperLocations">
		<list>
			<value>classpath:mybatis/mapper/*.xml</value>
		</list>
	</property>

	<!-- dao所在的包名,跟MapperScannerConfigurer的basePackage一致 
		多个用;隔开
	-->
	<property name="basePackage" value="com.myapp.dao" />
	
</bean>
  • 四. 新建一个实体类,在实体类中加入JPA注解,因为需要通过注解来解析出数据库的一些信息,注解会在流程3中用到
@Table(name = "t_user")
public class TUser {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id;
	
	@Column(name = "username")
	private String username;

	// 省略get set
}

在实际项目中手动写实体类是不现实的,需要配合代码生成工具,easymybatis对应的代码生成工具链接: 代码生成器 。其实这个代码生成工具不是必须的,如果您有一个工具能生成hibernate实体类的话也是可行的。

  • 五. 最后新建一个Dao继承CrudDao,表示这个dao具有CRUD功能
public interface TUserDao extends CrudDao<TUser> {
}

接下来就可进行编码测试了

@Resource
TUserDao dao;

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

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

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

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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部