SpringBoot整合MyBatis的代码详解

网友投稿 641 2022-10-04

SpringBoot整合MyBatis的代码详解

SpringBoot整合MyBatis的代码详解

目录SpringBoot整合MyBatis依赖的导入大致目录相关文件配置创建数据库和相对应的Pojo类Service层的编写Controller层的编写登录测试

SpringBoot整合MyBatis

依赖的导入

整合mybatis之前我们需要相对应的导入相关依赖。

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

org.projectlombok

lombok

1.18.12

provided

com.alibaba

druid

1.2.1

org.mybatis

mybatis

3.4.6

</dependency>

大致目录

我们首先需要在java的目录和resources下创建mapper文件夹。前者是方法的接口,后者则是xml文件的编写。

例如:

@Mapper

@Repository

public interface UserLoginMapper {

//查询

public List queryAll();

//添加数据

public int add(User user);

//根据用户名查询数据

public User queryByName(String name);

}

xml实现

select * from student

insert into student values (#{name},#{password})

select * from student where name = #{name}

相关文件配置

我们可以使用yml文件也可以使用properties两种文件选择一个(当然也都可以都用)。

配置:

#配置mapper

mybatis.mahttp://pper-locations=classpath:mapper/*.xml

mybatis.type-aliases-package=com.example.springbootdemo03.mapper

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/mysql1?serverTimezone=GMT%2B8&useSSL=true

username: root

password: 密码

jdbc:

template:

query-timeout: 3

创建数据库和相对应的Pojo类

数据库格式:

POJO类:

@AllArgsConstructor

@NoArgsConstructor

@Data

public class User {

private Integer id;

private String name;

private String password;

private String sex;

private String fullName;

private String email;

}

Service层的编写

UserLogin接口的编写:

public interface UserLogin {

/**

*查询用户名是否存在

*/

public Boolean IsExit(String name);

/**

* 判断账号密码是否存在

* @param name

* @return

*/

public User Login(String name);

}

UserLoginImpl接口实现类的编写:

@Service

public class UserLoginImpl implements UserLogin {

//自动注入UserLoginMapper

@Autowired

UserLoginMapper userLoginMapper;

@Override

public Boolean IsExit(String name){

if(userLoginMapper.queryByName(name) == null){

return false;

}else return true;

}

@Override

public User Login(String name) {

User user = userLoginMapper.queryByName(name);

return user;

}

}

Controller层的编写

我们可以通过Controller层编写来测试登录注册。

@Autowired

UserLogin userLogin;

@GetMapping(value = {"/","/login"})

public String Index(){

return "login";

}

@GetMapping("main.html")

public String Main(){

return "index";

}

@PostMapping("/login")

public String Login(User user, HttpSession session, Model model){

if(!userLogin.IsExit(user.getName())){

session.setAttribute("msg", "登录失败");

return "redirect:/login";

}

User login = userLogin.Login(user.getName());

if(user.getName().equals(login.getName()) && user.getPassword().equals(login.getPassword())){

session.setAttribute("loginUser",user);

return "redirect:/main.html";

}

else {

session.setAttribute("msg", "登录失败");

return "redirect:/login";

}

}

登录测试

登录成功时:

会跳转到主页面

登录失败时:

会重定向到这个页面

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Prometheus的集群与高可用
下一篇:小程序加载器的实现:按需预加载远程图片资源(小程序图片预加载)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~