我们需要知道三个实体类之间的关系,User与Role一对一,Role与Permissions一对一,当然也可以把它都写成多对多,这就需要去更改数据库文件,和实体类了。
=====================================================================================
下面只给出相关依赖源
com.github.theborakompanioni
thymeleaf-extras-shiro
2.0.0
org.apache.shiro
shiro-spring
1.5.3
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.3
mysql
mysql-connector-java
org.springframework.boot
spring-boot-devtools
runtime
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
===========================================================================================
就只需要创建一个dao层,一个服务层,需要记住要 添加注解 :
(1)mapper配置文件(也可以使用注解形式):
<?xml version="1.0" encoding="utf-8" ?>SELECT u.*,r.role_name FROM user
u, role
r
WHERE username = #{username} AND u.role_id = r.id;
SELECT p.* ,r.role_name FROM user
u, role
r, permission
p
WHERE username = #{username} AND u.role_id = r.id AND p.role_id = r.id;
(2)DAO层:
@Mapper
public interface UserMapper {
User queryUserByUsername(@Param(“username”) String username);
Permissions queryPermissionByUsername(@Param(“username”) String username);
}
(3)service层:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User queryUserByUsername(String username) {
return userMapper.queryUserByUsername(username);
}
@Override
public Permissions queryPermissionByUsername(String username) {
return userMapper.queryPermissionByUsername(username);
}
}
弄到这里,我们的mybatis+springboot整合也基本结束,所以在测试类里测试一下:
@SpringBootTest
class CsyApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User admin = userMapper.queryUserByUsername(“admin”);
System.out.println(admin.toString());
Permissions permission = userMapper.queryPermissionByUsername(“admin”);
S