spring 整合 mybatis 步骤
1. 导入 所需要的依赖
在pom.xml文件中加入maven依赖
<dependencies>
<!--Spring框架的核心功能库-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.10</version>
</dependency>
<!--Spring应用上下文-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
<!-- spring-web:用于构建基于Web的应用程序,包含对Servlet、WebSocket、REST等的支持。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.10</version>
</dependency>
<!--spring-webmvc:提供了基于MVC模式的Web应用程序开发支持。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
<!--spring-jdbc:为JDBC访问数据库提供支持。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.10</version>
</dependency>
<!--spring-orm:提供了对对象关系映射(ORM)框架的集成支持,如Hibernate、JPA等。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>compile</scope>
</dependency>
<!--Spring框架的AOP功能库,提供了AOP的支持和实现。-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.10</version>
</dependency>
<!--aspectjweaver:AspectJ的核心库,可以与Spring AOP一起使用。-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
<!-- aspectjrt:AspectJ的运行时库,用于在运行时织入切面。-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.7</version>
</dependency>
<!-- aspectjtools:AspectJ的工具库,包含了编译器等辅助工具。-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.9.7</version>
</dependency>
</dependencies>
配置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 1加载db.properties -->
<context:property-placeholder location="jdbc.properties"/>
<!-- 2创建数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 3创建SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载数据源 -->
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="mybatis-config.xml"/>
<!-- 设置别名 -->
<!-- <property name="typeAliasesPackage" value="com.lzl.model"/>-->
</bean>
<!-- 4创建Mapper扫描器 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!--注解实现依赖注入 扫描包里面的注解-->
<context:component-scan base-package="dao,service"/>
</beans>
其中dateSource中的信息可以直接配置到applicationContext.xml文件中,但是大多数采用的配置文件jdbc.properties的形式引入,方便维护管理
jdbc.properties配置信息
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///minimart?serverTimezone=UTC&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
在minmart数据库创建user表
编写实体类User
package pojo;
import lombok.Data;
@Data
public class User {
private int id;
private String name;
private long age;
}
编写UserDao接口和对应的mapper映射文件
接口
package mapper;
import pojo.Student;
import java.util.List;
public interface StudentMapper {
/***
* @description: 查看所有用户信息
* @param: null
* @return: java.util.List<pojo.User>
* @author ROY
* @date: 2023-08-14 16:37
*/
List<Student> getUserList();
}
mapper映射文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.StudentMapper">
<select id="getUserList" resultType="Student" >
select * from user
</select>
</mapper>
编写MyBatis主配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--设置懒加载-->
<!--<settings>
<setting name="cacheEnable" value="true"></setting>
</settings>-->
<!--设置 日志 缓存 自动匹配-->
<settings>
<setting name="autoMappingBehavior" value="FULL" />
</settings>
<!--简写实体类的名字 -->
<typeAliases>
<!--<typeAlias alias="TSys" type="pojo.TSysUser"/>-->
<!--自动匹配实体类 名字-->
<package name="pojo"/>
</typeAliases>
<mappers>
<mapper resource="mapper/UsersMapper.xml"/>
</mappers>
</configuration>
编写service接口和相应的实现类(目的是通过service调用dao接口中的方法)
service接口:
package service;
import pojo.Student;
import reflect.User;
import java.util.List;
public interface StudentService {
/***
* @description: 查看所有用户信息
* @param: null
* @return: java.util.List<pojo.User>
* @author ROY
* @date: 2023-08-14 16:37
*/
List<Student> getUserList();
}
实现类:
package service;
import dao.TSysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pojo.TSysUser;
import java.util.List;
@Service("userService")
public class UserServiceImpl implements UserService{
@Autowired
private TSysUserMapper userMapper;
@Override
public List<TSysUser> getAll() {
return userMapper.getAll();
}
}
编写测试方法
package test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.TSysUser;
import pojo.Users1;
import service.UserService;
import java.util.List;
public class testUser {
@Test
public void testSelectAll(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
UserService userService = (UserService) applicationContext.getBean("userService");
List<Users1> all = userService.getAll();
for (Users1 user:all) {
System.out.println(user.toString());
}
}
}
测试结果