前言:我们现在常见的网站,各种管理系统,电商项目等基本都是javaweb开发,对于新手必学的框架也是最流行的框架ssm:SpringMVC、Spring、Mybatis(原来是ssh,h是Hibernate,现在mybatis用的更多),SpringBoot就是对ssm的一个整合,让配置不再那么繁琐(约定大于配置),这个脚手架让我们更快的上手项目。
Mybatis是现在用的很广的一个面向数据库的一个orm框架
这里总结一下SpringBoot项目整合Mybatis:
1.首先要整合完mysql才能进行,整合mysql可以看博客:
SpringBoot整合mysql驱动_m0_53611007的博客-CSDN博客
2.引入mybatis依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
3.application.yml文件中配置mybatis信息
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml#所有xml文件的位置
type-aliases-package: com.example.demo.entity.*#所有实体类的位置
config-location: classpath:mybatis/mybatis-config.xml#全局配置文件的位置
(这里的mybatis是和spring同级的)
4.步骤3中的文件位置并不是固定的,看你的项目怎么整,但是一定要对应起来,这里以我的配置为例创建文件
4.1创建全局配置文件
文件内容:这里简写,不注意技术问题
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 打印查询语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
<!-- 控制全局缓存(二级缓存)-->
<setting name="cacheEnabled" value="true"/>
<!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖-->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST -->
<!--<setting name="proxyFactory" value="CGLIB" />-->
<!-- STATEMENT级别的缓存,使一级缓存,只针对当前执行的这一statement有效 -->
<!--
<setting name="localCacheScope" value="STATEMENT"/>
-->
<setting name="localCacheScope" value="SESSION"/>
<!--数据库字段映射过来之后将名字驼峰命名 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
4.2每一个dao对应的xml文件。写一个举例子
文件内容;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserDao">
<select id="getCurDate" resultType="java.lang.String">
select curdate() from dual
</select>
</mapper>
5.编写dao层
这里一定要在类上加@Mapper注解
6.编写service层
impl下的文件是和service下文件的一一对应的实现关系
@Service不要忘了加
7.因为要测试就不写controller了直接写单元测试方法了
8.严谨起见,在启动类上方加一个扫描dao层文件的注解
9.运行测试
没问题成功了
注意:以上内容仅仅是springboot整合mybatis然后简单测试,并没有设计mybatis 的其他技术问题
其实如果只是简单测试的话service层也没必要写,不过还是规范一点的好