我们在前web阶段学了MyBatis、MyBatis-Plus、Druid等技术,SpringBoot是如何整合这些技术的呢,下面就来总结一下整合步骤。
一、整合Mybatis 1、导入对应的start你可以通过在pom.xml文件里面导入MyBatis与数据库驱动对应的坐标,但是springboot作为一个比较成熟的框架,它在对应版本下就已经测试好各个依赖之间版本兼容问题。系统为我们配置的依赖一定比我们手动修改的可靠,所以在创建工程时就应该导入MyBatis相应的start。就是在我们选择springweb那有一个sql选项,里面就有MyBatis与数据库驱动相应的坐标。
在配置文件中配置以下属性:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fruits
username: root
password: 1234
3、创建实体类
我创建一个水果信息类Fruit:
用注解方式实现MyBatis
@Mapper
public interface FruitDao {
@Select("select * from fruits")
public List selectAll();
}
5、测试查询结果
注意使用@SpringBootTest注解需要测试类所在的包在主程序引导类所在包目录或者包目录的子目录下。如果不满足,测试类会找不到注入的属性,你可以修改测试类包路径或者在注解上加上引导类的名称@SpringBootTest(calsses = Applacation.class)
@SpringBootTest
class Springboot06mybatisApplicationTests {
@Autowired
private FruitDao fruitDao;
@Test
void contextLoads() {
List fruits = fruitDao.selectAll();
for (Fruit fruit : fruits) {
System.out.println(fruit);
}
}
}
二、整合MyBatisPlus
1、导入对应的start
MyBatisPlus的start在创建时是无法勾选的,只能通过单独加入。或者选择阿里云的服务器,但是阿里云服务器创建版本太低了。我试了以下高版本的和很多依赖都有冲突,就选择一个版本比较低的。
2、配置数据库连接信息、创建实体类com.baomidou mybatis-plus-boot-starter 3.0.5
这两步和MyBatis一样,就不用在说了。
3、编写DAO层MyBatisPlus的DAO层不用单独定义sql语句,直接继承BaseMapper
@Mapper public interface FruitDao extends BaseMapper4、配置表名称前缀与后缀{ }
由于我数据库里面的表名与实体类不一致,数据库表名是fruits,实体类是Fruit,差一个s,需要在MyBatisPlus相关配置中修改。直接在实体类上面加上@TableName("fruits")注解
5、测试@SpringBootTest
class Springboot07mybatisplusApplicationTests {
@Autowired
private FruitDao fruitDao;
@Test
void contextLoads() {
List fruits = fruitDao.selectList(null);
for (Fruit fruit : fruits) {
System.out.println(fruit);
}
}
}
三、整合Druid
1、导入Druid的start
2、加入数据源配置com.alibaba druid-spring-boot-starter 1.1.10
在配置数据库连接信息的地方加入Druid的配置,有两种加法:
(1)直接在后面加上数据源是什么
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fruits
username: root
password: 1234
type: com.alibaba.druid.pool.DruidDataSource
(2)直接配置Druid结构的数据源
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fruits
username: root
password: 1234
最后测试就行了。



