Springboot项目搭建(前端到数据库,超详细),大神勿进!

前段时间,有很多小伙伴私下跟我说,想搞一个项目实战。今天刚好我有空,于是,我就搞了一个从前端到后台的用户系统(demo)。用户系统基本是所有项目中都必须有的基础模块,可大可小。大的需要很大一个团队来维护,小的一个人兼职就能搞定。对于很多还未参与工作的同学来说,这个项目也可以练练手,说不定,第一份工作进去就是搞用户模块呢。

技术栈

Spring Boot 、Jpa 、Thymeleaf、HTML、Maven、MySQL。

对于技术栈,还不清楚的同学,自行查找相关资料,至少知道个大概是干啥的。

需求功能

现在需要对用户信息进行新增、列表展示、用户详情展示、信息修改、信息删除等功能。

用户信息:姓名、密码、手机号码、年龄。

数据库表

自己本地安装MySQL,并创建数据库,然后在创建一张用户表。

建表语句

 
 
 
 
  1. CREATE TABLE `user` ( 
  2.   `uid` bigint NOT NULL AUTO_INCREMENT, 
  3.   `uname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, 
  4.   `password` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
  5.   `tel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
  6.   `age` int DEFAULT NULL, 
  7.   PRIMARY KEY (`uid`) 
  8. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 

项目构建

项目整体目录

接下来,我们就一步一步,把这些代码理清楚。

整体项目采用的是

 
 
 
 
  1. html-->controller--->service--repository-->DB 

这也是当前实际开发中相对比较流行的,但为了演示,我这里就就用entity实体类就搞定了。

实际开发中会有其他什么O之类的,比如说:DTO/VO/BO.....。有的项目使用的是DTO,有的可能使用的是BO等。进入项目组了,按照项目组的开发规范来就行了,实在不理解的话,建议你先学会模仿别人是怎么做的。

废话不多说,直接开干!

创建Spring Boot项目

可以使用spring官网给创建方式,地址:

https://start.spring.io/

这里也可以参考另外一篇文章:

如何快速构建Spring Boot基础项目?

maven依赖

在项目的pom.xml中添加如下配置

 
 
 
 
  1.  
  2.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  3.     4.0.0 
  4.      
  5.      
  6.         org.springframework.boot 
  7.         spring-boot-starter-parent 
  8.         2.1.6.RELEASE 
  9.      
  10.      
  11.     com.tian.user 
  12.     spring-boot-jpa-thymeleaf 
  13.     1.0-SNAPSHOT 
  14.      
  15.     spring-boot-jpa-thymeleaf   
  16.  
  17.      
  18.          
  19.          
  20.             org.springframework.boot 
  21.             spring-boot-starter-web 
  22.          
  23.          
  24.          
  25.             org.springframework.boot 
  26.             spring-boot-starter-thymeleaf 
  27.          
  28.          
  29.          
  30.             org.springframework.boot 
  31.             spring-boot-starter-data-jpa 
  32.              
  33.          
  34.          
  35.          
  36.             mysql 
  37.             mysql-connector-java 
  38.          
  39.      
  40.  
  41.      
  42.          
  43.              
  44.                 org.springframework.boot 
  45.                 spring-boot-maven-plugin 
  46.                  
  47.                     true 
  48.                  
  49.              
  50.          
  51.      
  52.  

 

主要是SpringBoot项目parent、web、MySQL、jpa、thymeleaf依赖,这样就把相关的jar包给依赖进来了。

启动类

 
 
 
 
  1. import org.springframework.boot.SpringApplication; 
  2. import org.springframework.boot.autoconfigure.SpringBootApplication; 
  3. import org.springframework.boot.builder.SpringApplicationBuilder; 
  4. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 
  5.  
  6. /** 
  7.  * @author java 后端技术全栈 
  8.  * 就是一个简单的启动类 
  9.  */ 
  10. @SpringBootApplication 
  11. public class Application { 
  12.  
  13.     public static void main(String[] args) { 
  14.         SpringApplication.run(Application.class, args); 
  15.     }  

注意:此时数据库相关信息没有配置进项目里,所以,项目是启动不了的。

集成MySQL数据库

在resource目录下,创建一个application.properties文件,加入以下内容:

 
 
 
 
  1. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 
  2. spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC 
  3. spring.datasource.username=root 
  4. spring.datasource.password=123456 

注意:如果MySQL是8.0版本,必须要配置服务时区,否则会启动不了。

此时项目就可以正常启动了。

集成 Jpa

在application.properties中添加

 
 
 
 
  1. spring.jpa.properties.hibernate.hbm2dl.auto=create 
  2. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect 
  3. spring.jpa.show-sql=true 

创建一个UserRepository

 
 
 
 
  1. package com.tian.user.repository; 
  2.  
  3. import com.tian.user.entity.User; 
  4. import org.springframework.data.jpa.repository.JpaRepository; 
  5. import org.springframework.data.jpa.repository.Modifying; 
  6. import org.springframework.data.jpa.repository.Query; 
  7. import org.springframework.stereotype.Repository; 
  8.  
  9. @Repository 
  10. public interface UserRepository extends JpaRepository {  

这样jpa就集成就来了。

集成Thymeleaf

前面我们已经把jar包给以来进来了,需要在application.properties中添加

 
 
 
 
  1. spring.thymeleaf.cache=false 
  2. spring.thymeleaf.prefix=classpath:/templates/ 
  3. spring.thymeleaf.mode=.html 
  4. spring.thymeleaf.encoding=UTF-8 
  5. spring.thymeleaf.content-type=text/html 

然后在resources目录下添加两个文件夹:

  • templates 前端页面模板目录
  • static 前端静态资源目录

新增用户

在templates目录下创建index.html

   
 
 
 
  1.  
  2.  
  3.  
  4.      
  5.     Index 
  6.      
  7.  
  8.  
  9.  
  10.      
  11.         姓名:
     
  12.         年龄:
     
  13.         密码:
     
  14.         手机号码:
     
  15.          
  16.      
 
  •  
  •  

    创建UserService接口和UserServiceImpl实现类。

     
     
     
     
    1. public interface UserService { 
    2.     void add(User user); 
    3. @Service 
    4. public class UserServiceImpl implements UserService { 
    5.     @Resource 
    6.     private UserRepository userRepository; 
    7.     @Override 
    8.     public void add(User user) { 
    9.         userRepository.save(user); 
    10.     } 

    创建UserController

     
     
     
     
    1. @Controller 
    2. public class UserController { 
    3.     @Resource 
    4.     private UserService userService; 
    5.  
    6.     @RequestMapping("/index") 
    7.     public String add(Model model) { 
    8.         return "index"; 
    9.     } 
    10.  
    11.     @RequestMapping("/save") 
    12.     public String save(Model model,User user) { 
    13.         userService.add(user); 
    14.         //跳转到用户列表 
    15.         return "redirect:/userList"; 
    16.     } 

    这样一个新增功能我们就做完了。这里我们顺带着把用户列表也给搞出来。

    用户列表

    在templates目录下创建user_list.html页面

     
     
     
     
    1.  
    2.  
    3.  
    4.    
    5.  
    6.  
    7.  
    8.      
    9.          
    10.     
     
  •  
  •      
  •          
  •             姓名 
  •             年龄 
  •             手机号码 
  •             操作 
  •          
  •          
  •              
  •              
  •              
  •             用户详情 | 
  •                 删除用户信息 | 
  •                 修改用户信息 
  •              
  •          
  •      
  •  
  •  
  • 在service和实现类中添加用户列表的方法,这里没有做分页。

     
     
     
     
    1. //UserService中添加 
    2. List findAll(); 
    3. //UserServiceImpl中添加方法 
    4. @Override 
    5. public List findAll() { 
    6.     return userRepository.findAll(); 

    然后我们再在controller中添加一个方法用户列表的方法。

     
     
     
     
    1. @RequestMapping("/userList") 
    2. public String index(Model model) { 
    3.     List users = userService.findAll(); 
    4.     model.addAttribute("users", users); 
    5.     return "user_list"; 

    好了,自此用户列表也搞定。下面我们来启动项目,然后演示一下:

    演示

    新增流程的演示,访问:

    http://localhost:8080/

    来到新增用户页面:

    填入用户信息

    点击新增,来到用户列表:

    用户详情

    在templates目录下创建user_info.html页面:

     
     
     
     
    1.  
    2.  
    3.  
    4.      
    5.     用户详情 
    6.  
    7.  
    8.  
    9. 姓名:
       
    10. 年龄:
       
    11. 密码:
       
    12. 手机号码:
       
     
  •  
  •  
  •  

    在service和实现类分别添加相应的方法。

     
     
     
     
    1. //UserService中添加方法 
    2. User findById(Long id); 
    3. //UserServiceImpl添加方法 
    4. @Override 
    5. public User findById(Long id) { 
    6.     return userRepository.getOne(id); 

    然后在controller中添加方法

     
     
     
     
    1. @RequestMapping("/userInfo/{id}") 
    2. public String userInfo(Model model, @PathVariable("id") Long id) { 
    3.     User user = userService.findById(id); 
    4.     model.addAttribute("user", user); 
    5.     return "user_info"; 

    然后再次启动项目,我们就直接可以从用户列表中进入到用户详情里。

    点击:用户详情。

    OK,到此,用户详情也就搞定了。剩下的我们继续搞修改功能。

    用户信息修改

    在templates目录下创建update.html页面。

     
     
     
     
    1.  
    2.  
    3.  
    4.      
    5.     Index 
    6.  
    7.  
    8.  
    9.      
    10.         
       
    11.         姓名:
       
    12.         年龄:
       
    13.         密码:
       
    14.         手机号码:
       
    15.          
    16.      
    17.  
    18.  

     

    UserRepository中添加更新方法:

     
     
     
     
    1. @Repository 
    2. public interface UserRepository extends JpaRepository { 
    3.  
    4.     @Modifying 
    5.     @Query("update User u set u.tel=?1 ,u.uname=?2 , u.password=?3 where  u.uid=?4") 
    6.     void updateById(String tel, String uname, String password, Long uid); 

    继续在UserService和实现类中添加想要的方法。

     
     
     
     
    1. //UserService中添加方法 
    2. void update(User user); 
    3. //UserServiceImpl中添加方法 
    4. @Transactional 
    5. @Override 
    6. public void update(User user) { 
    7.     userRepository.updateById(user.getTel(), user.getUname(), user.getPassword(), user.getUid()); 

    注意:UserServiceImpl添加的 这个update方法,必须要事务注解@Transactional,否则更新失败。异常信息如下:

     
     
     
     
    1. javax.persistence.TransactionRequiredException: Executing an update/delete query 
    2.  at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:398) ~[hibernate-core-5.3.10.Final.jar:5.3.10.Final] 

    加上事务注解@Transactional就搞定了。

    然后在controller中添加方法

     
     
     
     
    1. @RequestMapping("/updateById") 
    2. public String updateById(Model model,User user) { 
    3.     userService.update(user); 
    4.     return "redirect:/userList"; 
    5. //跳转到修改页面 
    6. @RequestMapping("/update/{id}") 
    7. public String update(Model  model, @PathVariable("id") Long id) { 
    8.     User user = userService.findById(id); 
    9.     model.addAttribute("user", user); 
    10.     return "update"; 

    再次启动项目,继续来到用户列表页面:

    点击:修改用户信息,然后跳转到用户信息修改页面:

    这里我们把手机尾号修改成666:

    点击修改按钮。跳转到用户列表页面:

    发现此时的用户手机号已经修改完了。

    到这里,我们已经做了用户新增、单个用户信息查询、多个用户信息查询、单个用户信息修改。剩下的删除功能留给大家自己去做。相信大家也是很轻松的就能完成的。

    总结

    本文使用了技术栈:

    Spring Boot +Jpa + Thyneleaf +MySQL+Maven+HTML

    实战演练一个用户信息新增、查询、修改。

    注意点:

    1、配置信息是一点要小心,不能有误。

    2、得自己安装MySQL数据库,然后创建数据库,创建用户表。

    3、分层:html页面、controller、service接口、service实现类、repository接口。

    好了,一个简单的用户信息模块就这样了,删除就靠你们自己去实现了。非常简单的~,如有疑惑、问题的可以随时联系我。

    「展望」

    后面我们基于这个不断扩大,比如:用户信息删除、用户登录、用户注册、权限、角色、集成Redis做缓存、使用Redis搞一个分布式锁、用户积分排行榜等待功能。

    本文转载自微信公众号「Java后端技术全栈」,可以通过以下二维码关注。转载本文请联系Java后端技术全栈公众号。

    网页标题:Springboot项目搭建(前端到数据库,超详细),大神勿进!
    网站路径:http://www.shufengxianlan.com/qtweb/news48/387398.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    品牌网站制作知识

    分类信息网站