SpringSecurity_连接数据库访问

编程入门 行业动态 更新时间:2024-10-27 02:20:43

SpringSecurity_<a href=https://www.elefans.com/category/jswz/34/1770036.html style=连接数据库访问"/>

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_连接数据库访问

本文发布于:2023-07-28 19:19:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1285462.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接数据库

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!