请看下面的解释:
spring、mybatis 配置方式详解
1. Spring 整合 MyBatis 方式
Spring 整合 MyBatis 是通过 Sring 的一个对象 MybatisSqlSessionFactoryBean 来实现的。首先导入依赖包:
<!--Spring核心依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!--Spring ORM依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!--MyBatis核心依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<!--MyBatis的Spring整合依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring-version}</version>
</dependency>
然后在 Spring 的配置文件中,配置 MybatisSqlSessionFactoryBean:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置连接池属性 -->
<property name="initialSize" value="${druid.initialSize}" />
<property name="maxActive" value="${druid.maxActive}" />
<property name="minIdle" value="${druid.minIdle}" />
</bean>
<!--
配置 MyBatis 的 SqlSessionFactoryBean
可以设置一些属于 MyBatis 的配置项
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="mapperLocations" value="classpath*:com/example/mapper/*.xml" />
</bean>
<!--
配置 MyBatis 自动扫描 Mapper 接口
对应的 Mapper 映射可能位于不同包下,通过通配符配置
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao" />
</bean>
其中,dataSource 定义了数据源的一些属性,包括 url、username、password 等。而 sqlSessionFactory 则是配置了 Mapper 的映射文件和 Mybatis 的一些配置项。最后 MapperScannerConfigurer 则是配置自动扫描 Mapper 接口。
2. 配置方式二:Mybatis-spring-boot-starter
Mybatis-spring-boot-starter 是我们使用 Spring Boot 快速集成 MyBatis 的方式。
首先,在 pom.xml 中引入如下依赖:
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
然后在 application.properties 或 application.yml 文件中配置 Mybatis 和数据库连接池的一些属性:
#mybatis
mybatis.config-location=classpath:mybatis-config.xml
mybatis.mapper-locations=classpath*:mapper/*.xml
#datasource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
#连接池大小
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
其中,mybatis.config-location 和 mybatis.mapper-locations 是配置 Mybatis 的映射文件和一些属性。 datasouce.* 是配置数据库连接池和数据库连接的一些属性。
示例
示例一:查询数据
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE id=#{id}")
User getUserById(Integer id);
}
@Service
public class UserServiceImpl implements UserService{
@Autowired
UserMapper userMapper;
@Override
public User getUserById(Integer id) {
if(null == id){
return null;
}
return userMapper.getUserById(id);
}
}
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/get-user/{id}")
public User getUserById(@PathVariable Integer id){
return userService.getUserById(id);
}
}
上述示例中,我们定义好 UserMapper 接口以及实现类 UserServiceImpl。在控制层,我们通过调用 userService.getUserById(id) 获取对应用户的信息。
示例二:插入数据
@Mapper
public interface UserMapper {
@Insert("INSERT INTO `user` (`name`, `age`, `phone`) VALUES (#{name}, #{age}, #{phone})")
int addUser(User user);
}
@Service
public class UserServiceImpl implements UserService{
@Autowired
UserMapper userMapper;
@Override
public boolean addUser(User user) {
int result = userMapper.addUser(user);
if(result > 0){
return true;
}
return false;
}
}
@RestController
public class UserController {
@Autowired
UserService userService;
@PostMapping("/add-user")
public boolean addUser(@RequestBody User user){
return userService.addUser(user);
}
}
上述示例我们定义了 UserMapper 接口的 addUser(User user) 方法,并在接口实现类 UserServiceImpl 中完成该方法的实现。在控制层中我们通过调用 userService.addUser(user) 接口,实现了新建用户的功能。
以上就是 spring、mybatis 配置方式详解的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring、mybatis 配置方式详解(常用两种方式) - Python技术站