springboot2.0x整合mybatis-plus
mybatis-plus是对mybatis的一个增强,让我们在做数据层面开发的时候效率得到很大的提升,那么springboot如何去整合mybatis-plus
1、首先在pom.xml中导入springboot的父依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
2、因为我们要用视图对查询出来的数据进行展示,所以我们可以导入web的启动器(这一步只是为了测试查询出的数据,适用于初学者,如果只是想知道整合mybatis-puls需要用到哪些依赖的话,那么我们这步可以省去)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3、我们再导入与mybatis-puls相关的依赖
①:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0-RC3</version>
</dependency>
②:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
③:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
①:导入mybatis-plus的启动器(这里我用的是mybatis-plus3.0x的版本)
②:导入数据库的连接驱动,这里我用的是mysql的连接驱动,如果是其他的数据库请导入其他数据库的驱动
③:导入数据库连接池,我这里导入的是druid连接池(因为springboot2.0x默认的连接池是HikariCP连接池,所以如果不配会springboot会使用默认的连接池)
4、配置yml文件
#tomcat 配置
①:
server:
port: 8081
#spring mvc 配置
②:
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
#数据库配置
③:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://**.***.***:3306/fanqie_shop?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource
#mybatis-plus 包扫描
④:
mybatis-plus:
⑤:
mapper-locations: classpath:/mapper/*Mapper.xml
typeAliasesPackage: com.fanqie.maketshop.vo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
①:是tomcat的端口配置(springboot的默认端口是8080,如果要改变端口需配置此属性)
②:springmvc的视图配置(如果只是整合mybatis-plus的话,这步可以省去)
③:数据库的配置(从上到下,依次配置mysql的驱动类,数据库地址,这个数据库地址后面一定的要字符编码集,以及数据库的账号,密码,注意,这个type是连接池数据源)
④:mybatis-plus配置
⑤:mybatis-plus配置的属性(分别是*Mapper.xml的路径,实体类别名,控制台sql的打印)
5、写实体类
@TableName("t_order_item")
public class OrderItem {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 订单主表外键
*/
@TableField("order_id")
private Long orderId;
@TableField("ssu_id")
private Integer ssuId;
@TableField("sku_id")
private Integer skuId;
@TableField("spu_id")
private Integer spuId;
@TableField("c1_id")
private Integer c1Id;
@TableField("c2_id")
private Integer c2Id;
@TableField("c3_id")
private Integer c3Id;
@TableField("c1_name")
private String c1Name;
@TableField("c2_name")
private String c2Name;
@TableField("c3_name")
private String c3Name;
/**
* sku名称
*/
@TableField("sku_name")
private String skuName;
/**
* 规格
*/
@TableField("sku_format")
private String skuFormat;
要对这个实体类进行相应的的数据库配置,类上面的注解配置数据库的表名称
@TableName注解,配置的是表的名字
@TableId注解,配置的是表的主键
@TableField注解,配置的是表的字段
类里面每个字段则配置表的字段
总结:实体类就是表,类里的字段就是表里的字段
6、写service接口与接口的实现以及Mapper接口
public interface OrderItemMapper extends BaseMapper<OrderItem> {
}
public interface IOrderItemService extends IService<OrderItem> {
}
@Service
public class OrderItemService extends ServiceImpl<OrderItemMapper, OrderItem> implements IOrderItemService {
}
这里的Mapper接口要继承mybatis-plus的BaseMapper(mybatis-plus已经把Mapper常用的一些方法写好了)
注意这里的service接口与service的实现都要分别继承mybatis-plus的 IService,ServiceImpl (这两个类里面mybatsi-plus都已经帮你写好了基于单表操作的增删改查,然后IService的泛型就是上面配置的实体类,ServiceImpl泛型类型分别是上面配置的Mapper接口,以及实体类)
7、测试
@Controller
@RequestMapping(value = "/shop/order")
public class OrderController {
@Autowired
private IOrderItemService orderItemService;
@RequestMapping("/orderDemo")
@ResponseBody
public List<OrderItem> demo(){
return orderItemService.list(new QueryWrapper<OrderItem>().eq("order_id","201805155909100000"));
}
}
在Controller里面引入service,然后编写访问的方法
注意,这里的service因为继承了IService与ServiceImpl,所以里面有很多的单表操作的方法,我们可以直接使用,这里我只根据某个字段去查询数据做示范
然后通过浏览器去访问,展示数据
至此springboot整合mybatis-plus也就完成了