Mybatis 加強類庫 easymybatis

簡單介紹

easymybatis是一個mybatis加強類庫,目的爲簡化mybatis的開發,讓開發更高效。java

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

easymybatis的特性以下:git

  • 無需編寫xml文件便可完成CRUD操做。
  • 支持多表查詢、聚合查詢、分頁查詢(支持多種數據庫)。
  • 支持批量添加,指定字段批量添加。
  • 支持Dao層訪問控制,如某個dao只有查詢功能,某個dao有crud功能等。
  • 支持自定義sql,sql語句能夠寫在配置文件中,一樣支持mybatis標籤。
  • 支持mysql,sqlserver,oracle,其它數據庫擴展方便(增長一個模板文件便可)。
  • 使用方式不變,與Spring集成只改了一處配置。
  • 輕量級,無侵入性,可與傳統mybatis用法共存。
  • 沒有修改框架源碼(無插件),採用動態代碼生成實現功能。

架構組成

easymybatis的架構以下:spring

架構

運行流程

easymybatis的運行流程圖:sql

運行流程

  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> {
}

接下來就可進行編碼測試了springboot

@Resource
TUserDao dao;

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

更多例子可參考TUserDaoTest.java。重點關注Dao,Query對象便可。服務器

若是您不想從頭開始搭項目的話,這裏有個搭建好的demo項目能夠爲您使用。mybatis

兩個版本,一個是基於springboot,一個是傳統springmvc,推薦springboot。架構

相關文章
相關標籤/搜索