账号信息数据持久层模块
1、MyBatis简介
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2、MyBatis工程配置
2.1、依赖的包
<!-- 数据持久层框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
2.2、application配置文件
2.2.1、application-dev.yml
server:
port: 8080
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
thymeleaf:
cache: false;
mybatis:
mapper-locations: classpath:zhw.example.zhw.loginModule.loginDao/*.xml
2.2.2、application.yml
spring:
profiles:
active: dev
2.3、UserDao.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="zhw.example.zhw.loginModule.loginDao.UserDao">
<select id="selectUserByUsername" parameterType="String" resultType="zhw.example.zhw.loginModule.pojo.User">
select * from mybatis.user where username= #{username}
</select>
<insert id="addUser" parameterType="zhw.example.zhw.loginModule.pojo.User">
insert into mybatis.user (username,password)
values(#{username},#{password})
</insert>
<update id="updateUser" parameterType="zhw.example.zhw.loginModule.pojo.User">
update mybatis.user set password = #{password} where username = #{username}
</update>
<delete id="deleteUser" parameterType="String">
delete from mybatis.user where username= #{username}
</delete>
</mapper>
2.4、实体类User
package zhw.example.zhw.loginModule.pojo;
import java.util.Set;
public class User {
private String id;
private String username;
private String password;
private String role_id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRole_id() {
return role_id;
}
public void setRole_id(String role_id) {
this.role_id = role_id;
}
}
2.5、UserDao接口
package zhw.example.zhw.loginModule.loginDao;
import org.apache.ibatis.annotations.Mapper;
import zhw.example.zhw.loginModule.pojo.User;
@Mapper
public interface UserDao {
User selectUserByUsername(String username);
void addUser(User user);
void updateUser(String username);
void deleteUser(String username);
}
2.6、UserService接口
package zhw.example.zhw.loginModule.loginService;
import org.apache.ibatis.annotations.Mapper;
import zhw.example.zhw.loginModule.pojo.User;
import java.util.List;
public interface UserService {
User selectUserByUsername(String username);
void addUser(User user);
void updateUser(String username);
void deleteUser(String username);
}
2.7、UserServiceImp实现
package zhw.example.zhw.loginModule.loginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import zhw.example.zhw.loginModule.loginDao.UserDao;
import zhw.example.zhw.loginModule.pojo.User;
import java.util.List;
@Service
public class UserServiceImp implements UserService{
@Autowired(required = false)
private UserDao userDao;
@Override
public User selectUserByUsername(String username) {
return userDao.selectUserByUsername(username);
}
@Override
public void addUser(User user) {
userDao.addUser(user);
}
@Override
public void updateUser(String username) {
userDao.updateUser(username);
}
@Override
public void deleteUser(String username) {
userDao.deleteUser(username);
}
}
3、测试