spring整合mybatis有多重方式
- xml配置Mybatis,代码通过mybatis的xml配置生成SqlSessionFactory(这种方法已过时)
-
原始xml方式整合
通过maven引入SpringMVC和Mybatis包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<!--mariadb的JDBC驱动-->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
创建表结构
CREATE TABLE tb_province (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增主键',
province varchar(255) NULL COMMENT '省份中文名'
);
创建数据库表映射class
class TbProvinceEntity {
var id: Int? = null
var province: String? = null
}
创建Dao层接口
/**
* 注解:@Mapper 必须添加,否则不会生成对应的实现子类
*/
@Mapper
interface ProvinceMapper {
fun getList(): List<TbProvinceEntity>
}
建立 db.properties 配置数据库(一般存放在resource目录)
#db.properties 文件内容
jdbc.driver=org.mariadb.jdbc.Driver
jdbc.url=jdbc:mariadb:/xx.com:8700/test
jdbc.username=xxx
jdbc.password=xxx
resource文件夹下建立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>
<properties resource="db.properties"/> <!--引入db配置-->
<settings>
<setting name="cacheEnabled" value="false"/> <!--缓存配置-->
<setting name="logImpl" value="LOG4J"/> <!--日志代理-->
</settings>
<environments default="dev"> <!--default=默认配置,-->
<environment id="dev">
<transactionManager type="JDBC"/> <!--存储过程管理,默认使用JDBC-->
<dataSource type="POOLED"> <!--type=POOLED 使用连接池-->
<property name="url" value="${jdbc.url}"/>
<property name="driver" value="${jdbc.driver}"/>
<property name="password" value="${jdbc.password}"/>
<property name="username" value="${jdbc.username}"/>
</dataSource>
</environment>
</environments>
<mappers><!--配置mapper的映射地址-->
<!--
1:使用相对路径进行配置
路径的根目录为classpath
-->
<mapper resource="com/test/mapper/ProvinceMapper.xml"/>
<!--
2:使用绝对路径进行配置
路径可以是本地磁盘任意位置的xml文件
-->
<mapper url="file:///com/test/mapper/ProvinceMapper.xml"/>
<!--
3:使用接口信息进行配置
此时对应的映射文件必须与接口位于同一路径下,并且名称相同
示例接口文件:ProvinceMapper.java
对应的mapper配置文件:ProvinceMapper.xml
-->
<mapper class="com.test.mapper.ProvinceMapper"/>
<!--
4:使用接口所在包进行配置
此时对应的映射文件必须与接口位于同一路径下,并且名称相同
示例接口文件:ProvinceMapper.java
对应的mapper配置文件:ProvinceMapper.xml
-->
<package name="com.test.mapper"/>
</mappers>
</configuration>
使用方法
/**
* 配置文件需要打包放在运行时项目的根目录下
* mybatis-config.xml
* 使用builder设计模式创建SessionFactory:SqlSessionFactoryBuilder
* 使用ClassPathResource加载配置资源
*/
val sessionFactory = SqlSessionFactoryBuilder().build(ClassPathResource("mybatis-config.xml").inputStream)
val session = sessionFactory.openSession()
val provinceMapper = session.getMapper(ProvinceMapper::class.java)
provinceMapper.getList()
网友评论