连接数据库访问"/>
SpringSecurity_连接数据库访问
文章目录
- 1.引入jar包
- 2.配置文件编写
- 3.编写数据库
- 4.编写实体类
- 5.编写Mapper接口
- 6.在业务层中引入用户的用户名和密码
- 7.测试
既然是需要连接数据库就必须引入连接数据库的框架
这里选择的是mp
1.引入jar包
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>
2.配置文件编写
appilication.properties
server.port=8082#spring.security.user.name=zzz
#spring.security.user.password=rootspring.datasource.url=jdbc:mysql:///test1?serverTimezone=GMT%2B8
spring.datasource.password=root
spring.datasource.username=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
需要注意后面需要加上时区,因为当前引入的是SpringBoot2以上的版本
3.编写数据库
create database test1;use test1;create table user(id int not null primary key auto_increment, username varchar(20), password varchar(20))insert into user values (null, "Zzz", "root")
4.编写实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {private Integer id;private String username;private String password;}
5.编写Mapper接口
@Repository
public interface UserMapper extends BaseMapper<User> {}
这里是继承了BaseMapper接口
public interface BaseMapper<T> extends Mapper<T> {int insert(T entity);int deleteById(Serializable id);int deleteByMap(@Param("cm") Map<String, Object> columnMap);int delete(@Param("ew") Wrapper<T> wrapper);int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);int updateById(@Param("et") T entity);int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);T selectById(Serializable id);List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);T selectOne(@Param("ew") Wrapper<T> queryWrapper);Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);<E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper);
}
6.在业务层中引入用户的用户名和密码
@Service("userDetailsService")
public class TestService implements UserDetailsService {@Autowiredprivate UserMapper userMapper;@Overridepublic UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {QueryWrapper<com.atguigu.bean.User> objectQueryWrapper = new QueryWrapper<>();objectQueryWrapper.eq("username", s);com.atguigu.bean.User user = userMapper.selectOne(objectQueryWrapper);String username = user.getUsername();String password = user.getPassword();if (user == null){throw new UsernameNotFoundException("不存在");}List<GrantedAuthority> list = AuthorityUtils.commaSeparatedStringToAuthorityList("role");return new User(username, new BCryptPasswordEncoder().encode(password), list);}
}
第一个是导入UserMapper接口
第二个是根据接口去查找数据库中的用户
第三个是根据用户去查找用户名和用户密码
第四个是将用户名和密码引入到原来的自定义的类中
7.测试
更多推荐
SpringSecurity_连接数据库访问
发布评论