idea使用springBoot + mybatis +maven实现注册登录和简单增删改查(crud)
完成后的项目目录如下(所有文件都可拷贝)
(一)第一部分(创建项目)
1、File——>New——>Project——>Spring Initializr——>Next——jdk版本选择和刚才项目SDK版本一致的,我这里是1.8,其他的项目名称可不做修改。修改完点finish即可
2、继续Next,这里选择需要用的就可以,这里选择了Web下的SpingWeb 和SQL里面的两个。在最右边,是选择好的。点击next。之后是项目的名字和项目的存储空间。可以自己做修改。点击finish即可
此时项目目录如下图
(二)第二部分(相关配置)
1、创建数据库对应的表,这里创建一张user表进行数据的操作。注:id设为自动递增,我这里的数据库名和表名都叫user
2、在application.properties配置文件中配置四项内容
①数据库的连接。
②因为我本地项目比较多,8080端口被占用,所以再配置一下端口号
③mapper映射文件的配置
④页面跳转的路径的一个配置
application.properties的配置如下
#配置数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/user?characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
#配置项目启动端口号
server.port=9696
#mapper映射
mybatis.type-aliases-package=com.example.demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml
#页面跳转
spring.thymeleaf.prefix=classpath:/static/
spring.thymeleaf.suffix=.html
3、导入相关的依赖文件到pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
4、在resources下创建5个html页面,分别是注册、登录、和人员管理(实现增删改查)、失败和成功跳转的页面
登录页面login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form method="get" action="/user/login">
用户名:<input name="username" type="text"/>
密码:<input name="password" type="password"/>
<input type="submit" value="登录验证">
<input type="button" onclick="javascript:window.location.href='regist.html'" value="注册页面">
<!-- <input type="button" onclick="javascript:window.location.href='personMessage.html'" value="leader管理页面">-->
</form>
</body>
</html>
注册页面regist.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>regist</title>
</head>
<body>
<form method="post" action="/user/regist">
用户名:<input name="username" type="text"/>
密码:<input name="password" type="password"/>
<input type="submit" value="注册校验">
<input type="button" onclick="javascript:window.location.href='login.html'" value="返回首页面">
</form>
</body>
</html>
人员管理页面personMessage
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>言旭人员管理平台</title>
</head>
<body>
<h2>言旭人员管理平台</h2>
<h3>query</h3>
<form method="post" action="/user/queryAll">
<input type="submit" value="查询所有人员">
</form>
<h3>add</h3>
<form method="post" action="/user/add">
用户名:<input name="userName" type="text"><br>
密码:<input name="passWord" type="text"><br>
<input type="submit" value="添加">
</form>
<h3>delete</h3>
<form method="post" action="/user/deleteById">
编号:<input name="id" type="text"><br>
<input type="submit" value="删除该编号对应人员">
</form>
<h3>modify</h3>
<form method="post" action="/user/update">
编号:<input type="text"><br>
用户名:<input type="text"><br>
密码:<input type="text"><br>
<input type="submit" value="更新该编号对应人员信息">
</form>
</body>
</html>
成功页success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>成功页</title>
<h3>操作成功</h3>
</head>
<body>
</body>
</html>
失败页err.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>失败页</title>
<h3>操作失败</h3>
</head>
<body>
</body>
</html>
(三)第三部分(主要代码逻辑)
1、创建对应的控制器controller层、实体类包entity、逻辑层service以及对应的mapper接口
User实体类
package com.example.demo.entity;
public class User {
private Integer id;
private String userName;
private String passWord;
public void setId(Integer id){
this.id = id;
}
public Integer getId(){
return 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;
}
}
UserController控制器
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@GetMapping("/login")
public String login(User user){
return userService.login(user);
}
@GetMapping("/regist")
public String regist(User user){
return userService.regist(user);
}
@PostMapping("/add")
@ResponseBody
public String add(User user){
return userService.add(user);
}
@PostMapping("/deleteById")
@ResponseBody
public String deleteById(String id){
return userService.deleteById(id);
}
@PostMapping("/queryAll")
@ResponseBody
public List<User> queryAll(){
return userService.queryAll();
}
}
UserService逻辑层
package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
//该注解可以对类成员变量、方法以及构造函数进行标注,完成自动装配工作
@Autowired
UserMapper userMapper;
public String login(User user){
//登录逻辑函数
try{
User userExistN = userMapper.findByName(user.getUserName());
if(userExistN!=null){
String userExistP = userMapper.findPswByName(user.getUserName());
if(userExistP.equals(user.getPassWord())){
// return user.getUsername()+"登录成功,欢迎您!";
return "personMessage";
}else {
return "err";
}
}else {
return "err";
}
}catch (Exception e){
e.printStackTrace();
return e.getMessage();
}
}
public String regist(User user){
//注册逻辑函数
try {
User userExist = userMapper.findByName(user.getUserName());
if (user.getUserName().equals("")){
return "err";
}else if (user.getPassWord().equals("")){
return "err";
}else if (userExist!=null){
return "err";
}else{
userMapper.save(user);
return "success";
}
}catch (Exception e){
e.printStackTrace();
return e.getMessage();
}
}
//添加人员
public String add(User user){
userMapper.add(user);
return user.getUserName()+"添加成功!";
}
//根据id编号删除人员
public String deleteById(String id){
userMapper.deleteById(id);
return "删除成功";
}
//查询所有人员
public List<User> queryAll(){
return userMapper.queryAll();
}
}
UserMapper数据DAO层,需要配置对应的UserMapper.xml文件
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
//@Repository将类标识为bean
@Repository
@Mapper
public interface UserMapper {
User findByName(String name);
String findPswByName(String UserName);
void save(User user);
void add(User user);
void deleteById(String userId);
List<User> queryAll();
}
在resources下创建mapper文件夹——>在新建UserMapper.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">
<!--xmlns="http://mybatis.org/schema/mybatis-mapper"-->
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findByName" resultType="User">
select * from User where username=#{userName}
</select>
<select id="findPswByName" resultType="String">
select password from user where username = #{userName}
</select>
<insert id="save">
insert into user(username,password) value (#{userName},#{passWord})
</insert>
<insert id="add">
insert into user(username,password) value (#{userName},#{passWord})
</insert>
<delete id="deleteById">
delete from user where id = #{id}
</delete>
<select id="queryAll" resultType="User">
select * from user
</select>
</mapper>
此时,整个项目就已经完成了。运行–>在浏览器输入
注册页面:localhost:9696/regist.html
登录页面:localhost:9696/login.html
注册和登录页面可以相互跳转。登录成功后,跳转至人员管理界面
注:注册不允许用户名重复,做了限制,如果重复,会跳转err错误页面
整个功能做的验证比较少,所以比较简单。主要是对springBoot一整个项目的搭建流程做了一个梳理。如果有什么问题,欢迎指正。
如果写的东西对你有所帮助,欢迎点赞关注