Spring Boot & Mybatis
2018-08-05 本文已影响38人
大批
Mybatis简介
- mybatis是一个比较灵活的orm,简单好用。
- 官方文档
- 下面仅仅是介绍一些容易混淆的知识点
项目依赖(仅仅是java项目)
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
Mybatis的mapper,xml 和 接口
- mapper的实现,一种是使用xml,一种是接口的方式,还有是两种结合起来使用
- 如果仅仅是使用xml的方式,配置mapper的时候配置的是xml文件的路径,mapper里面的namespace仅仅就是一个区分不同mapper的作用,和java里面的包名没有任何关系
<mappers>
<mapper resource="mapper\CountryMapper.xml"/>
</mappers>
- 如果是使用java接口的方式,这个时候就需要配置包名。如果仅仅是用java就需要用注解来实现各种操作
<mappers>
<package name="com.suse.yudapi.mapper"/>
</mappers>
- java接口和xml的方式,这种方式需要xml的包名和java接口的包名对应。配置的时候是配置包名,mybatis会通过包名去解析对应路径里面的xml,如果没有找到就会报错,这个时候xml里面的namespace也需要和包名对应起来
枚举处理
- 使用typeHandlers 这个要配置在typAliases后面
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
javaType="com.suse.yudapi.model.CountryType"/>
</typeHandlers>
Spring Boot Mybatis
- 依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
- 配置(由 xml 变成了 java 配置),配置类是org.mybatis.spring.boot.autoconfigure.MybatisProperties。下面列出常用的配置
mybatis.mapperLocations="classpath:mapper/*.xml"
mybatis.typeAliasesPackage="com.suse.model"
mybatis.typeHandlersPackage=""
mybatis.configuration.mapUnderscoreToCamelCase=""
- mapper接口直接使用 @mapper 注解进行配置
- 开启扫描mapper的配置 @MapperScan
End