快速集成mybatis通用mapper

簡介
通用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。

附上目錄結構
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章