快速集成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。

附上目录结构
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值