用spring boot+mysql实现一个User用户名、密码的持久化
1.在https://start.spring.io中生成项目eko
2.设置编码UTF-8(否则会乱码)
3.配置数据库连接(application.properties)
#jsp的路径
spring.mvc.view.prefix=/WEB-INF/views/
#视图页面的后缀
spring.mvc.view.suffix=.jsp
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jiaoji171?useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=root
#设置方言
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
#可以自动生成数据表
spring.jpa.hibernate.ddl-auto=update
4.在pom.xml中加入依赖
<!-- servlet 依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat 的支持.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
5.编写实体类entity
package edu.gzhu.eko.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 实体类的编写
* */
@Entity
@Table(name = "user")
public class User {
/**
* id表示主键
* @GeneratedValue(strategy=GenerationType.IDENTITY)
* @GeneratedValue表示id的生成
GenerationType.IDENTITY表示主键的生成策略
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
/**
* Column 表示username对应的数据字段
*/
@Column(name = "username")
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = 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;
}
}
6.新建JPA接口,建立dao
package edu.gzhu.eko.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import edu.gzhu.eko.entity.User;
/**
* JpaRepository 是jpa数据操作的基本接口 T 泛型,
*
* @author Administrator
* @Repository 是表示数据库操作层面的注解
*/
@Repository
public interface UserDao extends JpaRepository<User, Integer> {
}
7.编写service接口
package edu.gzhu.eko.service;
import java.util.List;
import edu.gzhu.eko.entity.User;
public interface IUserService {
/**
* 获取全部用户
*/
public List<User> findAll();
/**
* 保存用户
*
*/
public void saveUser(User user);
}
8.实现service接口
package edu.gzhu.eko.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import edu.gzhu.eko.dao.UserDao;
import edu.gzhu.eko.entity.User;
import edu.gzhu.eko.service.IUserService;
/**
* UserService的实现方法
* @Service 表示spring的一个组件--service的组件
*/
@Service("userService")
public class UserService implements IUserService {
@Resource
private UserDao userDao;
@Override
public List<User> findAll() {
// TODO Auto-generated method stub
return userDao.findAll();
}
@Override
public void saveUser(User user) {
this.userDao.save(user);
}
}
9.创建mysql数据库,前面写的自动建表的方法,所以这里不用手动建表
10.编写UserController以及jsp文件
package edu.gzhu.eko.web;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import edu.gzhu.eko.entity.User;
import edu.gzhu.eko.service.IUserService;
@Controller
public class UserController {
@Resource
private IUserService userService;
@GetMapping("/register")
public String register() {
System.out.println("你好!!!");
return "register";
}
/**
* 用户处理注册
*/
@PostMapping("/doRegister")
public String doRegister(User user,Model model) {
this.userService.saveUser(user);
return "success1";
}
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
<h1>注册</h1>
<form class="form-horizontal" role="form" action="/doRegister" method="post">
<div class="form-group">
<label for="firstname" class="col-sm-2 control-label">名字</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" name="username" placeholder="请输入名字">
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" name="password" placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">注册</button>
</div>
</div>
</form>
</body>
</html>
success1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
${user.username },${user.password }
</body>
</html>
结果截图:
jsp写得简陋,请见谅!