4.6 基于Spring-Boot的Mysql+jpa的增删改查学习记录 > 我的程序猿之路:第三十六章
1.项目结构
-JDK 1.8
-SpringBoot 2.0.6
-Thymeleaf
-Hot Start
1.1 后台(5个)
java\com\example\demo\beans\user.java (创建实体)
java\com\example\demo\repository\userRepository.java (数据持久)
java\com\example\demo\userService\userService.java (业务接口)
java\com\example\demo\userService\userServiceImpl.java (接口实现)
java\com\example\demo\web\HeController.java (表现)
1.2 web(4个)
resources\templates\add.html (增加页面)
以及 配置文件 目录(代码在最后面)
resources\templates\edit.html (修改页面)
resources\templates\index.html (首页页面)
resources\templates\login.html (列表页面)
数据库
2 .代码
1.user.java
1 package com.example.demo.beans;
2
3 import org.apache.catalina.User;
4
5 import javax.persistence.Entity;
6 import javax.persistence.GeneratedValue;
7 import javax.persistence.GenerationType;
8 import javax.persistence.Id;
9 import java.io.Serializable;
10
11 @Entity
12 public class user implements Serializable {
13
14 @Id
15 @GeneratedValue
16 private int id;
17 private String name;
18 private String falg;
19
20 public int getId() {
21 return id;
22 }
23
24 public void setId(int id) {
25 this.id = id;
26 }
27
28 public String getName() {
29 return name;
30 }
31
32 public void setName(String name) {
33 this.name = name;
34 }
35
36 public String getFalg() {
37 return falg;
38 }
39
40 public void setFalg(String falg) {
41 this.falg = falg;
42 }
43 public user(){
44
45 }
46 public user(String name,String falg){
47 super();
48 this.name=name;
49 this.falg=falg;
50 }
51 }
2.userRepository.java
1 package com.example.demo.repository; 2 import com.example.demo.beans.user; 3 import org.springframework.data.jpa.repository.JpaRepository; 4 import org.springframework.data.jpa.repository.Modifying; 5 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.transaction.annotation.Transactional; 7 8 import java.util.List; 9 10 public interface userRepository extends JpaRepository<user, Long> { 11 12 public user findAllBy(); 13 public List<user> findAllById(Integer id); 14 @Transactional 15 @Modifying 16 @Query("delete from user where id = ?1") 17 public void deleteByCustomerId(Integer id); 18 19 }
3.userService.java
1 package com.example.demo.userService;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import com.example.demo.beans.user;
5 import java.util.List;
6
7 public interface userService {
8
9 public List<user> getUserList();
10 public List<user> findUserById(Integer id);
11 public void edit(user user);
12 public void del(Integer id);
13 public void saveUser(user user);
14
15
16 }
4.userServiceImpl.java
1 package com.example.demo.userService;
2
3 import com.example.demo.repository.userRepository;
4 import com.example.demo.beans.user;
5 import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.stereotype.Service;
7 import com.example.demo.userService.userService;
8 import java.util.List;
9 @Service
10 public class userServiceImpl implements userService {
11 @Autowired
12 private userRepository ur;
13 @Override
14 public List<user> getUserList() {
15 return ur.findAll();
16 }
17 public List<user> findUserById(Integer id){
18 // long iss= (int)id;
19 return ur.findAllById(id);
20 }
21 public void edit(user user){
22 ur.save(user);
23 }
24 public void del(Integer id){
25 System.out.println("This is userServiceImpl");
26 ur.deleteByCustomerId(id);
27 }
28 public void saveUser(user user){
29 ur.save(user);
30
31 }
32 }
5.HeController.java
1 package com.example.demo.web;
2 import org.springframework.stereotype.Controller;
3 import org.springframework.ui.Model;
4 import org.springframework.web.bind.annotation.PathVariable;
5 import org.springframework.web.bind.annotation.RequestMapping;
6 import com.example.demo.userService.userService;
7 import com.example.demo.beans.user;
8 import org.springframework.web.bind.annotation.RequestParam;
9
10 import javax.annotation.Resource;
11 import javax.servlet.http.HttpServletRequest;
12 import java.util.List;
13
14 @Controller
15 @RequestMapping("index.do")
16 public class HeController {
17
18 @Resource
19 private userService userService;
20
21 @RequestMapping("/index")
22 public String aaa(){
23 return "index";
24 }
25 @RequestMapping("info/login")
26 public String bbb(HttpServletRequest r,Model model){
27 String name_ = r.getParameter("name");
28 String falg_ = r.getParameter("falg");
29 List<user> users =userService.getUserList();
30 for(user u:users){
31 System.out.println(u.getName());
32 System.out.println(u.getFalg());
33 }
34 model.addAttribute("users",users);
35 return "login";
36 }
37 @RequestMapping("/toEdit/{id}")
38 public String edit(Model model,@PathVariable Integer id){
39 System.out.println("__"+id);
40 List<user> u = userService.findUserById(id);
41 user uu = new user();
42 String a ="";
43 String b ="";
44 for(int i=0;i<u.size();i++){
45 a = u.get(i).getName();
46 b = u.get(i).getFalg();
47 }
48 uu.setId(id);
49 uu.setName(a);
50 uu.setFalg(b);
51 model.addAttribute("user",uu);
52 return "edit";
53 }
54 @RequestMapping("/info/saveEd")
55 public String saveEd(HttpServletRequest request){
56 String id = request.getParameter("id");
57 String name = request.getParameter("name");
58 String falg = request.getParameter("falg");
59
60 System.out.println("saveEd"+name+"--"+falg);
61 user u = new user();
62 u.setId(Integer.parseInt(id));
63 u.setName(name);
64 u.setFalg(falg);
65 userService.edit(u);
66 return "redirect:/index.do/info/login";
67 }
68 @RequestMapping("/toDel/{id}")
69 public String del(@PathVariable("id") Integer id){
70 System.out.println(id+"--id");
71 userService.del(id);
72 return "redirect:/index.do/info/login";
73 }
74 @RequestMapping("info/insert")
75 public String insert(){
76 System.out.println("insert");
77 return "add";
78 }
79 @RequestMapping("/toAdd")
80 public String add(HttpServletRequest request){
81 System.out.println("--add");
82 String name = request.getParameter("name");
83 String falg = request.getParameter("falg");
84 user u = new user();
85 u.setName(name);
86 u.setFalg(falg);
87 userService.saveUser(u);
88 return "redirect:/index.do/info/login";
89 }
90 }
6.add.html
1 <!DOCTYPE html>
2 <html xmlns:th="http://www.thymeleaf.org">
3 <head>
4 <meta charset="UTF-8">
5 <title>Spring-boot-add</title>
6 </head>
7 <body>
8 <form action="/index.do/toAdd" method="post">
9 <table>
10 <tr>
11 <td>name:<input type="text" name="name"></td>
12 </tr>
13 <tr>
14 <td>falg:<input type="text" name="falg"></td>
15 </tr>
16 <tr>
17 <td><input type="submit" value="submit"></td>
18 </tr>
19 </table>
20 </form>
21 </body>
22 </html>
7.edit.html
1 <!DOCTYPE html>
2 <html xmlns:th="http://www.thymeleaf.org">
3 <head>
4 <meta charset="UTF-8">
5 <title>Spring-boot-edit</title>
6 </head>
7 <body>
8 <form th:action="@{/index.do/info/saveEd}" method="post">
9 <table>
10 <tr >
11
12 <td><input type="text" th:value="${user.name }" th:name="name"><input type="hidden" th:value="${user.id}" th:name="id"> </td>
13 </tr>
14 <tr>
15 <td><input type="text" th:value="${user.falg }" th:name="falg"></td>
16 </tr>
17 <tr>
18 <td><input value="修改" type="submit"/></td>
19 </tr>
20 </table>
21
22 </form>
23 </body>
24 </html>
8.index.html
1 <!DOCTYPE html>
2 <html xmlns:th="http://www.thymeleaf.org">
3 <head>
4 <meta charset="UTF-8">
5 <title>Spring-Boot-Web-index</title>
6 </head>
7 <body>
8 <a href="/index.do/info/login">进入</a>
9 </body>
10 </html>
9.login.html
1 <!DOCTYPE html> 2 <html xmlns:th="http://www.thymeleaf.org"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Spring-boot-login</title> 6 <link rel="stylesheet" th:href="@{/css/bootstrap.css}"></link> 7 </head> 8 <script> 9 10 </script> 11 <body> 12 <div class="with:80%"> 13 <table class="table table-hover"> 14 <tr><td><a href="/index.do/info/insert" >add</a></td></tr> 15 <tr> 16 <th>id</th> 17 <th>User Name</th> 18 <th>Password</th> 19 <th>edit</th> 20 <th>delete</th> 21 </tr> 22 23 <tbody> 24 <tr th:each="u : ${users}"> 25 <td th:text="${u.id}"></td> 26 <td th:text="${u.name }"></td> 27 <td th:text="${u.falg }">u.falg</td> 28 <td><a th:href="@{'/index.do/toEdit/'+${u.id}}">edit</a></td> 29 <td><a th:href="@{'/index.do/toDel/'+${u.id}}">delete</a></td> 30 </tr> 31 </tbody> 32 </table> 33 </div> 34 </body> 35 </html>
10.pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5
6 <groupId>com.example</groupId>
7 <artifactId>demo</artifactId>
8 <version>0.0.1-SNAPSHOT</version>
9 <packaging>jar</packaging>
10
11 <name>demo</name>
12 <description>Demo project for Spring Boot</description>
13
14 <parent>
15 <groupId>org.springframework.boot</groupId>
16 <artifactId>spring-boot-starter-parent</artifactId>
17 <version>2.0.6.RELEASE</version>
18 <relativePath/> <!-- lookup parent from repository -->
19 </parent>
20
21 <properties>
22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24 <java.version>1.8</java.version>
25 <!-- set thymeleaf version -->
26 <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
27 <thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
28 </properties>
29
30
31 <dependencies>
32 <dependency>
33 <groupId>org.springframework.boot</groupId>
34 <artifactId>spring-boot-starter</artifactId>
35 </dependency>
36 <!-- 添加支持web的模块 -->
37 <dependency>
38 <groupId>org.springframework.boot</groupId>
39 <artifactId>spring-boot-starter-web</artifactId>
40 </dependency>
41 <!--spring boot tomcat(默认可以不用配置,但当需要把当前web应用布置到外部servlet容器时就需要配置,并将scope配置为provided)-->
42 <dependency>
43 <groupId>org.springframework.boot</groupId>
44 <artifactId>spring-boot-starter-tomcat</artifactId>
45 <scope>provided</scope>
46 </dependency>
47 <!-- pom.xml文件中默认有两个模块: -->
48 <!-- spring-boot-starter:核心模块,包括自动配置支持、日志和YAML; -->
49 <!-- spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。 -->
50 <dependency>
51 <groupId>org.springframework.boot</groupId>
52 <artifactId>spring-boot-starter-test</artifactId>
53 <scope>test</scope>
54 </dependency>
55 <!-- SpringBoot中使用Thymeleaf模板 -->
56 <dependency>
57 <groupId>org.springframework.boot</groupId>
58 <artifactId>spring-boot-starter-thymeleaf</artifactId>
59 </dependency>
60 <!-- 启动项目热部署 -->
61 <dependency>
62 <groupId>org.springframework.boot</groupId>
63 <artifactId>spring-boot-devtools</artifactId>
64 <optional>true</optional>
65 </dependency>
66 <!-- Hibername 的 spring data jpa -->
67 <dependency>
68 <groupId>org.springframework.boot</groupId>
69 <artifactId>spring-boot-starter-data-jpa</artifactId>
70 </dependency>
71 <!-- mysql数据库 -->
72 <dependency>
73 <groupId>mysql</groupId>
74 <artifactId>mysql-connector-java</artifactId>
75 </dependency>
76 </dependencies>
77
78 <build>
79 <plugins>
80 <plugin>
81 <groupId>org.springframework.boot</groupId>
82 <artifactId>spring-boot-maven-plugin</artifactId>
83 <configuration><fork>true</fork></configuration>
84 </plugin>
85 </plugins>
86 </build>
87
88
89 </project>
11.application.properties
1 #缓存关闭
2 spring.thymeleaf.cache=false
3 #识别templates/下的文件
4 spring.thymeleaf.prefix=classpath:/templates/
5 # 热部署开关,false即不启用热部署
6 spring.devtools.restart.enabled: true
7 # Mysql 数据库配置 bigen
8 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
9 spring.datasource.username=root
10 spring.datasource.password=root
11 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
12 # Mysql 数据库配置 end
13 # hibernate 的jpa bigen
14 spring.jpa.properties.hibernate.hbm2ddl.auto=update
15 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
16 spring.jpa.show-sql= true
17 # hibernate 的jpa end
能力有限,有许多不足,以上内容仅供参考
参考大神网站(纯洁的微笑):http://www.ityouknow.com/springboot/2016/08/20/spring-boo-jpa.html
http://www.ityouknow.com/springboot/2016/02/03/spring-boot-web.html
http://www.ityouknow.com/springboot/2016/05/01/spring-boot-thymeleaf.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步