目录结构:
pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<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>
<version>5.1.34</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
applicatio.yml:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/peimenghao
username: root
password: root
jpa:
database: MYSQL
hibernate:
ddl-auto: update
show-sql: true
UserController
@Controller
public class UserController {
@Autowired
UserServiceImpl userServiceImpl;
@RequestMapping("/login")
public String login(){
return "login";
}
@RequestMapping("doLogin")
public String doLogin(User user, Model model){
User user1 = userServiceImpl.getUser(user.getUserName(),user.getPassword());
System.out.println(user1);
if(user1 == null){
model.addAttribute("msg","登入失败");
}else{
model.addAttribute("msg","登入成功");
}
return "success";
}
@RequestMapping("getUser")
public String getAllUser(Model model){
List<User> users=userServiceImpl.findAll();
model.addAttribute("users",users);
return "users";
}
@RequestMapping("/register")
public String regist(){
return "register";
}
@RequestMapping("doRegister")
public String doRegister(@Valid User user, BindingResult result , Model model){
String errorMsg="";
if(result.hasErrors()) {
List<ObjectError> errors = result.getAllErrors();
for (ObjectError e : errors) {
errorMsg = errorMsg + e.getCode() + e.getDefaultMessage();
}
model.addAttribute("errorMsg",errorMsg);
return "register";
}
User user1=userServiceImpl.findByUserName(user.getUserName());
if(user1 !=null){
model.addAttribute("errorMsg","用户名重复");
return "register";
}
// UserParam user=new UserParam();
// BeanUtils.copyProperties(userParam,user);
userServiceImpl.save(user);
model.addAttribute("msg","注册成功");
return "success";
}
}
UserDao
public interface UserDao extends JpaRepository<User,Integer> {
//查询用户通过密码和姓名
User findByUserNameAndPassword(String username,String password);
//查询所有用户
List<User> findAll();
//保存一条用户
User save(User user);
//根据名字查询用户
User findByUserName(String userName);
}
User
@Getter
@Setter
@Entity
@Table(name="USER")
public class User {
@Id
@Column(name="USER_ID",length=50,nullable=false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int userId;
@NotEmpty(message = "用户名不能为空")
@Column(name="USER_NAME",length=255)
private String userName;
@NotEmpty(message="密码不能为空")
@Column(name="PASSWORD",length=255)
private String password;
}
UserServiceImpl
@Service
public class UserServiceImpl {
@Autowired
UserDao userDao;
public User getUser(String username, String password) {
return userDao.findByUserNameAndPassword(username,password);
}
public List<User> findAll(){
return userDao.findAll();
}
public void save(User user){
userDao.save(user);
}
public User findByUserName(String userName){
return userDao.findByUserName(userName);
}
}
login
<!DOCTYPE html>
<html lang="en" xmlns="http://www.thymeleaf.org">
<head>
</head>
<body class="text-center">
<div >
<form name="form" accept-charset="utf-8" action="/doLogin">
<ul >
<li>
<label class="input-tips2">用户名:</label>
<div class="inputOuter2">
<input type="text" id="username" name="userName" maxlength="16" />
</div>
</li>
<li>
<label class="input-tips2">密码:</label>
<div >
<input type="password" id="password" name="password" maxlength="16"/>
</div>
</li>
<li>
<div >
<input type="submit" value="登录"/>
<a href="/register">注册</a>
</div>
</li>
</ul>
</form>
</div>
<h1><asadadas></asadadas></h1>
</body>
</html>
register
<!DOCTYPE html>
<html lang="en" xmlns="http://www.thymeleaf.org" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="margin:0 auto;background-color: antiquewhite;width: 500px;height: 600px;">
<h1 th:text="${errorMsg}"></h1>
<form action="/doRegister" method="post"/>
<label>请输入姓名</label><input type="text" name="userName"/><br>
<label>请输密码</label><input type="text" name="password"/>
<input type="submit" value="提交"/>
</form>
</div>
</body>
</html>
success
<!DOCTYPE html>
<html lang="en" xmlns="http://www.thymeleaf.org" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1 th:text="${msg}"></h1>
<span th:text="${msg}"></span>
<a href="/getUser"><button> 点击查询所有人</button></a>
</body>
</html>
Users
<!DOCTYPE html>
<html lang="en" xmlns="http://www.thymeleaf.org" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<tr th:each="user : ${users}">
<td th:text="${user.userId}"></td></br>
<td th:text="${user.userName}">1</td><br>
<td th:text="${user.password}">1</td><br>
</tr>
<a>fanhui </a>
</body>
</html>
报错几次:
- pom文件 没有引 thymeleaf ,导致找不到url
- mysql版本有问题,pom文件加一个版本号