一、 整合mybatis
mybatis官网:https://github.com/mybatis
1.配置方式
①找到starter场景启动器,pom.xml中找到依赖,注意不要快照版,要稳定版。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
在自己的项目pom.xml中导入上述依赖。
②在yaml配置文件中配置mybatis的全局配置:
#配置mybatis规则
mybatis:
# config-location: classpath:mybatis/mybatis-config.xml #全局配置文件
mapper-locations: classpath:mybatis/mapper/*.xml #SQL映射文件
configuration: #全局属性配置,与config-location:全局配置文件的作用想通,二者只能存其一。我们可以不写全局配置文件,所有的属性配置都在yaml中配置。(建议使用这种方式)
map-underscore-to-camel-case: true #开启驼峰命名规则
③在resources目录下创建mybatis文件夹,创建mybatis-config.xml文件,内容如下:
<?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>
</configuration>
④在/resources/mybatis目录下创建mapper映射文件夹。mapper映射文件是xml类型,用来操作数据库。
⑤在项目包目录下创建mapper文件夹,在该文件夹下创建对应bean的mapper接口,UserTestMapper 。(声明Mapper接口,绑定XML文件)
package com.luyao.admin.mapper;
import com.luyao.admin.bean.UserTest;
@Mapper
public interface UserTestMapper {
//按照id查询用户
UserTest getUser(Long id);
}
⑥在/resources/mybatis/mapper文件夹下创建UserTestMapper 的SQL映射文件
<?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">
<!--这里要修改SQL映射文件对应的mapper所在的命名空间,全类名-->
<mapper namespace="com.luyao.admin.mapper.UserTestMapper">
<!-- UserTest getUser(Long id);-->
<!-- id为方法名 ,resultType为返回值的类型,对应bean的全类名-->
<select id="getUser" resultType="com.luyao.admin.bean.UserTest">
select * from user_test where id = #{id}
</select>
</mapper>
总结:
- 导入mybatis官方starter
- 编写mapper接口,一定标注@Mapper注解
- 编写SQL映射文件,并绑定mapper接口
- 在application.yaml中指定Mapper配置文件的位置,指定全局配置文件的信息。(建议在ymal中配置,不要在创建全局配置文件)
2.纯注解方式
- 导入mybatis官方starter
- 编写mapper接口,一定标注@Mapper注解
package com.luyao.admin.mapper;
import com.luyao.admin.bean.City;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface CityMapper {
/**
* 根据id查询城市
* @param id
* @return
*/
@Select("select * from city where id = #{id}")
City getCityById(Long id);
}
- 在mapper接口的方法上标注要进行的的SQL注解,编写SQL语句。
采用纯注解的方式,不需要在编写SQL映射配置文件。
3.混合方式
当SQL查询比较复杂,纯注解的方式不满足需要的时候,可以采用混合方式,同时采用配置方式和注解方式。