SpringBoot整合Mybaits
1.创建工程时加上mybatis 和mysql
①通过骨架创建
②也可以自己添加依赖
<!-- Mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--jdbc驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
2.定义数据层接口@Mapper与映射文件配置
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id=#{id}")
Book selectById(int i);
List<BookEntity> selectAll();
}
采用xml方式书写sql
<!--映射文件-->
<mapper namespace="com.iflytek.mapper.BookMapper">
<select id="selectAll" resultType="BookEntity">
select *
from books;
</select>
</mapper>
3.配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=GMT%2B8
username: root
password: "20020630"
type: com.alibaba.druid.pool.DruidDataSource
如果采用xml方式书写sql,需要再yml配置mapper资源地址
mybatis:
#定义别名包
type-aliases-package: com.iflytek.pojo
#导入映射文件
mapper-locations: classpath:/mapper/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
项目结构:
注意事项:
- SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区,或在MySQL数据库端配置时区解决此问题
jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
4.测试
在测试类中注入dao
@SpringBootTest
class SpringbootDemo3ApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
Book book=bookDao.selectById(1);
System.out.println(book);
}
}
若此时出现bookDao为null的话,需要再测试类上加入@RunWith(SpringRunner.class)注解