Mybatis
基本配置
1. 引入依赖
<dependency>
<groupId>org.hzero.starter</groupId>
<artifactId>hzero-boot-starter-mybatis-mapper</artifactId>
<version>${hzero.starter.version}</version>
</dependency>
2. application.yml添加相关配置
以mysql为例
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: username
password: password
springboot会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中。
3. 在启动类中添加对mapper包扫描@MapperScan
@SpringBootApplication
@MapperScan("com.demo.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
或者直接在Mapper类上面添加注解@Mapper,建议使用包扫描。
映射文件详解
定义sql语句
insert / delete / update
<!-- mapper 为根元素节点, 一个namespace对应一个dao -->
<mapper namespace="com.demo.dao.UserDao">
<insert
<!-- 1. id (必须配置)
id是命名空间中的唯一标识符,可被用来代表这条语句。
一个命名空间(namespace) 对应一个dao接口,
这个id也应该对应dao里面的某个方法(相当于方法的实现),因此id 应该与方法名一致 -->
id="addUser"
<!-- 2. parameterType (可选配置, 默认为mybatis自动选择处理)
将要传入语句的参数的完全限定类名或别名, 如果不配置,mybatis会通过ParameterHandler 根据参数类型默认选择合适的typeHandler进行处理,parameterType 主要指定参数类型,可以是int, short, long, string等类型,也可以是复杂类型(如对象) -->
parameterType="user"
<!-- 3. flushCache (可选配置,默认配置为true)
将其设置为 true,任何时候只要语句被调用,都会导致本地缓存和二级缓存都会被清空,默认值:true(对应插入、更新和删除语句) -->
flushCache="true"
<!-- 4. statementType (可选配置&#x