下面我将为您详细讲解 Spring 整合 MyBatis 的步骤,步骤如下:
第一步、导入相关依赖
首先需要在项目的 pom.xml 文件中导入 Spring 和 MyBatis 的相关依赖,具体依赖版本根据自己的需要进行选择。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
</dependencies>
第二步、配置数据库连接信息和 MyBatis
在项目的配置文件中,需要配置数据库连接信息和 MyBatis 的相关配置信息,以 XML 方式为例:
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false" />
<property name="user" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置 MyBatis 的 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath*:mapper/*.xml" />
</bean>
<!-- 配置 MyBatis 的 Mapper 接口扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
</bean>
第三步、编写 Mapper 接口和对应的映射文件
在 MyBatis 中,需要编写 Mapper 接口和对应的 XML 映射文件,示例如下:
Mapper 接口
public interface UserMapper {
User getUserById(Long id);
}
XML 映射文件
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
第四步、在 Spring 中注入 Mapper 接口
在 Spring 中需要注入 Mapper 接口的实现,示例如下:
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.example.mapper.UserMapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
第五步、使用 Mapper 接口进行数据库操作
在需要进行数据库操作的地方,使用 Mapper 接口进行操作,示例如下:
@Autowired
private UserMapper userMapper;
public User getUserById(Long id){
return userMapper.getUserById(id);
}
示例 1:基于 Spring Boot 的整合 MyBatis
在 Spring Boot 中,可以通过向 pom.xml 文件添加相应依赖,来快速完成 Spring 和 MyBatis 的整合。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
同时,需要在 application.yml 文件中配置数据库连接信息和 MyBatis 相关配置信息。
示例 2:基于 XML 的整合 MyBatis
在传统的 java web 项目中,可以通过在 Spring 配置文件中配置相关信息来完成整合。
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false" />
<property name="user" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置 MyBatis 的 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath*:mapper/*.xml" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!-- 配置 MyBatis 的 Mapper 接口扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper"/>
</bean>
同时,需要在 MyBatis 的配置文件 mybatis-config.xml 中配置相关信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring整合Mybatis详细步骤 - Python技术站