Spring5-Mybatis整合
1、导入maven依赖
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.version>5.2.8.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring对jdbc的支持依赖包(关联spring-tx包) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis-spring 依赖包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.0</version>
</dependency>
<!--mybatis 依赖包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mysql驱动 依赖包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
2、编写实体类
/*
实体类
*/
public class SysUser {
private Long userId; //用户编号
private String username; //用户名
private String password; //密码
private Long employeeId; //员工编号
private Integer salt; //盐值
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Long getEmployeeId() {
return employeeId;
}
public void setEmployeeId(Long employeeId) {
this.employeeId = employeeId;
}
public Integer getSalt() {
return salt;
}
public void setSalt(Integer salt) {
this.salt = salt;
}
@Override
public String toString() {
return "SysUser{" +
"userId=" + userId +
", username='" + username + '\'' +
", password='" + password + '\'' +
", employeeId=" + employeeId +
", salt=" + salt +
'}';
}
}
3、编写Mapper即dao层
/*
mapper文件
*/
import Pojo.SysUser;
public interface SysUserMapper {
public SysUser selectUserById(int user_id);
public void deleteUserById(int user_id);
}
4、编写service以及serviceimpl
/*
service
*/
@Service
public interface SysUserService {
public SysUser select(int user_id);
public void deleteUserById(int user_id);
}
/*
service实现类
在serviceimpl上使用@Repository注解若不使用该注解则要去spring-mybatis.xml文件给容器中加入该bean
*/
@Repository
public class SysUserServiceimpl implements SysUserService {
@Autowired
SysUserMapper userMapper;
@Override
public SysUser select(int user_id) {
return userMapper.selectUserById(user_id);
}
@Override
public void deleteUserById(int user_id) {
userMapper.deleteUserById(user_id);
}
}
5、编写mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.SysUserMapper">
<delete id="deleteUserById" parameterType="Integer">
delete from sys_user where user_id=#{user_id}
</delete>
<!-- SQL语句 -->
<select id="selectUserById" parameterType="Integer" resultType="Pojo.SysUser">
select * from sys_user where user_id=#{user_id}
</select>
</mapper>
db.properties文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/neuedu-oa
jdbc.username=root
jdbc.password=123456
spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<!--开启注解扫描,设置需要扫描的包(用于扫描测试时用的Service组件) -->
<context:component-scan base-package="service"/>
<!-- 引入db配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<!-- 配置dataSource数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 创建SqlSessionFactory,并配置实体对象别名 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="Pojo" />
<!--开启驼峰命名-->
<property name="configuration">
<bean class="org.apache.ibatis.session.Configuration">
<property name="mapUnderscoreToCamelCase" value="true"/>
</bean>
</property>
</bean>
<!-- 配置Mapper,自动扫描Mapper接口,并为其注入SqlSessionFactory -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="mapper"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
</beans>
public static void main(String[] args) {
ApplicationContext act=new ClassPathXmlApplicationContext("spring-mybatis.xml");
SysUserServiceimpl userService=(SysUserServiceimpl)act.getBean("sysUserServiceimpl");
System.out.println(userService.select(1).toString());
}
输出:
SysUser{userId=1, username='m8', password='f57e762e3fb7e1e3ec8ec4db6a1248e1', employeeId=1, salt=188}
总结
- 导入maven相关依赖
- 编写pojo类、dao层、service层、serviceimpl层并加入容器中
- 编写相关mapper.xml、以及编写spring-mybatis.xml的文件、导入db.properties文件相关配置属性到spring-mybatis.xml中
- 编写测试类