簡介
通用mapper
是一個國人編寫的工具jar,它可以極其方便的做單表增刪改查(使用Mybatis框架),目前不支持通用的多表聯合查詢,在使用mybatis時,就不需要重複的維護功能類似單表操作mapper.xml文件和mapper接口的定義
springBoot快速集成通用mapper
一、pom文件引入通用mapper依賴
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql驅動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--通用Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
注:
這裏最主要的是tk.mybatis依賴,其他依賴都是基本的
二、基礎配置 application.properties
#mysql數據庫
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/springbootdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= 111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
#開啓駝峯
mybatis.configuration.map-underscore-to-camel-case=true
#打印日誌
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#通用mapper
mapper.identity=MYSQL
mapper.not-empty=false
mapper.mappers=com.example.demo.dao.base.IBaseMapper
三、基礎mapper->IBaseMapper
- 寫一個基礎的mapper,繼承Mapper, MySqlMapper, IdsMapper
/**
* Mapper接口:基本的增、刪、改、查方法
* MySqlMapper:針對MySQL的額外補充接口,支持批量插入
* IdsMapper:使mapper支持批量ID操作
* @param <T>
*/
public interface IBaseMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> {
}
- 其他mapper繼承基礎mapper
@Repository
public interface SysUserDao extends IBaseMapper<SysUser> {
}
public class SysUser implements Serializable {
/**
* 主鍵
*/
@Id
private Integer id;
/**
* 用戶名
*/
@NotEmpty(message = "用戶名不能爲空")
private String username;
/**
* 密碼
*/
@NotEmpty(message = "密碼不能爲空")
private String password;
/**
* 電話
*/
private String phone;
/**
* 郵箱
*/
private String email;
/**
* 創建時間
*/
private Date createDate;
/**
* 更新時間
*/
private Date updateDate;
/**
* sys_user
*/
private static final long serialVersionUID = 1L;
省略get set方法
}
注:
這裏主鍵一定要加@Id
- 啓動類配置
@SpringBootApplication
@tk.mybatis.spring.annotation.MapperScan("com.example.demo.dao.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注:
MapperScan一定要用@tk.mybatis.spring.annotation.MapperScan
其次掃描的包下不要要包含IBaseMapper,否則會報錯
四、測試
@RestController
public class DemoController {
@Autowired
private SysUserDao dao;
@RequestMapping(value = "/test",method = RequestMethod.GET)
public List<SysUser> tkMapper(){
List<SysUser> list=new ArrayList<>();
for(int i=0;i<=10;i++){
SysUser user=new SysUser();
user.setUsername(String.valueOf(i));
list.add(user);
}
dao.insertList(list);//批量插入
return dao.selectAll();//查詢所有
}
}
至此每一個mapper接口,都可以繼承基礎mapper IBaseMapper
,從而可以少寫很多單表操作
的接口和sql。
附上目錄結構