一次偶然的机会接触到了通用mapper之后,就不再想用mapper.xml
文件编写sql语句操作数据库了,使用通用mapper更加简洁,因为通用mapper已经封装了很多常用的sql。具体使用mapper.xml
还是通用mapper可以根据实际情况进行选择。因为用着很爽,所以一直想写篇笔记记录一下项目中整合通用mapper的方法,今天得空,按照以前的习惯,还是通过一个新建项目来简单说明一下。
创建Springboot项目 |
2.到maven
远程仓库中下载通用mapper依赖和阿里的druid连接池依赖
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!-- 通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
3.创建一个commons包,在此包中新建一个BaseMapper接口。
@Component
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
4.在application.properties配置文件中配置数据库连接等信息……
server:
port: 8082
#数据库连接信息
spring:
#数据库
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: 数据库连接url
username: 用户名
password: 密码
type: com.alibaba.druid.pool.DruidDataSource
#mybatis和mapper相关配置
mybatis:
type-aliases-package: org.woodside.demo.entiy
configuration:
#开启下划线自动转驼峰命名
map-underscore-to-camel-case: true
mapper:
identity: MYSQL
#自定义的BaseMapper接口路径
mappers: org.woodside.demo.commons.BaseMapper
not-empty: true
enum-as-simple-type: true
5.做完以上配置,就可以创建controller、service、serviceImpl、mapper等目录了(这里我个人习惯直接这样称呼表明视图层、持久层等)
下面是此案例的目录结构:
6.附上项目中各个类的代码:
controller
@RestController
public class MpCouponController {
@Autowired
private MpCouponService mpCouponService;
@ResponseBody
@RequestMapping("/getList")
public Object getList() {
List<MpCoupon> mpCoupons = mpCouponService.queryList();
return mpCoupons;
}
}
service
public interface MpCouponService {
List<MpCoupon> queryList();
}
serviceImpl
@Service
public class MpCouponServiceImpl implements MpCouponService {
@Autowired
private MpCouponMapper mpCouponMapper;
@Override
public List<MpCoupon> queryList() {
return mpCouponMapper.selectAll();
}
}
mapper
@Mapper
@Component
public interface MpCouponMapper extends BaseMapper<MpCoupon> {
}
注意:
在mapper中,继承了我们自定义的BaseMapper
通过如上操作,就可以使用通用mapper中封装的增删改查方法了,避免了使用mapper.xml文件的时候,位置放在哪里合适的问题,同时项目看起来没有那么臃肿了。
7.启动项目,访问getList
接口,返回数据正常,springboot项目整合通用mapper搞定。