美女被张开双腿日出白浆 Spring boot名目搭建(前端到数据库,超详备),大神勿进!

发布日期:2022-05-11 08:35    点击次数:152

美女被张开双腿日出白浆 Spring boot名目搭建(前端到数据库,超详备),大神勿进!

前段时刻,有许多小伙伴擅自跟我说,想搞一个名目实战。今天刚好我有空,于是,我就搞了一个从前端到后台的用户系统(demo)。用户系统基本是所有这个词名目中都必须有的基础模块,可大可小。大的需要很大一个团队来保重美女被张开双腿日出白浆,小的一个人兼职就能惩处。关于许多还未参与职责的同学来说,这个名目也不错练练手,说不定,第一份职责进去即是搞用户模块呢

图片美女被张开双腿日出白浆

金三银四如何准备口试

工夫栈

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

关于工夫栈,还不明晰的同学,自行查找规划尊府,至少清亮个或者是干啥的。

需求功能

当今需要对用户信息进行新增、列表展示、用户细目展示、信息修改、信息删除等功能。

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

数据库表

我方腹地安设MySQL,并创建数据库,然后在创建一张用户表。

建表语句

CREATE TABLE `user` (  `uid` bigint NOT NULL AUTO_INCREMENT,  `uname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,  `password` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `tel` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `age` int DEFAULT NULL,  PRIMARY KEY (`uid`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;名目构建名目合座目次

接下来,咱们就一步一步,把这些代码理明晰。

合座名目聘请的是

html-->controller--->service--repository-->DB

这亦然现时本体诞生中相对比拟流行的,但为了演示,我这里就就用entity实体类就惩处了。

本体诞生中会有其他什么O之类的,比如说:DTO/VO/BO.....。有的名目使用的是DTO,有的可能使用的是BO等。参预名目组了,按照名目组的诞生步伐来就行了,确凿不睬解的话,提议你先学会师法他人是怎么做的。

妄言未几说,平直开干!

创建Spring Boot名目

不错使用spring官网给创建样式,地址:

https://start.spring.io/

这里也不错参考另外一篇著作:

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

maven依赖

在项规画pom.xml中添加如下确立

<?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>    <!-- Spring Boot 名目 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.6.RELEASE</version>    </parent>    <!-- 名目 maven 坐标 -->    <groupId>com.tian.user</groupId>    <artifactId>spring-boot-jpa-thymeleaf</artifactId>    <version>1.0-SNAPSHOT</version>    <!-- 名目称号 -->    <name>spring-boot-jpa-thymeleaf</name>      <dependencies>        <!-- web -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <!-- thymeleaf -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-thymeleaf</artifactId>        </dependency>        <!-- jpa -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jpa            </artifactId>        </dependency>        <!-- MySQL -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <fork>true</fork>                </configuration>            </plugin>        </plugins>    </build></project>

主如果SpringBoot名目parent、web、MySQL、jpa、thymeleaf依赖,这么就把规划的jar包给依赖进来了。

运转类import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;/** * @author java 后端工夫全栈 * 即是一个浅近的运转类 */@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    } }

注释:此时数据库规划信息莫得确立进名目里,是以,名目是运转不了的。

集成MySQL数据库

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

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=123456

注释:如果MySQL是8.0版块,必须要确立就业时区美女被张开双腿日出白浆,不然会运转不了。

此时名目就不错泛泛运转了。

集成 Jpa

在application.properties中添加

spring.jpa.properties.hibernate.hbm2dl.auto=createspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialectspring.jpa.show-sql=true

创建一个UserRepository

package com.tian.user.repository;import com.tian.user.entity.User;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.stereotype.Repository;@Repositorypublic interface UserRepository extends JpaRepository<User, Long> { }

这么jpa就集成就来了。

集成Thymeleaf

前边咱们依然把jar包予以来进来了,需要在application.properties中添加

spring.thymeleaf.cache=falsespring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.mode=.htmlspring.thymeleaf.encoding=UTF-8spring.thymeleaf.content-type=text/html

然后在resources目次下添加两个文献夹:

templates 前端页面模板目次static 前端静态资源目次新增用户

在templates目次下创建index.html

<!DOCTYPE html><html lang="zh" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8">    <title>Index</title>    <!-- 为了减少篇幅,面貌代码这里就不详掉,面貌不是咱们的重心内容 --></head><body><div id="content">    <form action="/save" method="post">        姓名:<input type="text" name="uname"><br/>        年事:<input type="text" name="age"><br/>        密码:<input type="text" name="password"><br/>        手机号码:<input type="text" name="tel"><br/>        <button>新增</button>    </form></div></body>

创建UserService接口和UserServiceImpl完结类。

public interface UserService {    void add(User user);}@Servicepublic class UserServiceImpl implements UserService {    @Resource    private UserRepository userRepository;    @Override    public void add(User user) {        userRepository.save(user);    }}

创建UserController

@Controllerpublic class UserController {    @Resource    private UserService userService;    @RequestMapping("/index")    public String add(Model model) {        return "index";    }    @RequestMapping("/save")    public String save(Model model,User user) {        userService.add(user);        //跳转到用户列表        return "redirect:/userList";    }}

这么一个新增功能咱们就做结束。这里咱们顺带着把用户列表也给搞出来。

用户列表

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

<!DOCTYPE html><html lang="zh" xmlns:th="http://www.thymeleaf.org"><head>  <!-- 为了减少篇幅,面貌代码这里就不详掉,面貌不是咱们的重心内容 --></head><body><a href="/">    <div id="ret">        <button>新增用户</button>    </div></a>    <table id="content" style="border: 1px solid;">        <tr>            <th>姓名</th>            <th>年事</th>            <th>手机号码</th>            <th>操作</th>        </tr>        <tr th:each="user:${users}">            <td th:text="${user.uname}"></td>            <td th:text="${user.age}"></td>            <td th:text="${user.tel}"></td>            <td><a th:href="@{'/userInfo/'+${user.uid}}" target="_blank">用户细目</a> |                <a th:href="@{'/deleteById/'+${user.uid}}" target="_blank">删除用户信息</a> |                <a th:href="@{'/update/'+${user.uid}}" target="_blank">修改用户信息</a>            </td>        </tr>    </table></body></html>

在service和完结类中添加用户列表的式样,这里莫得做分页。

//UserService中添加List<User> findAll();//UserServiceImpl中添加式样@Overridepublic List<User> findAll() {    return userRepository.findAll();}

然后咱们再在controller中添加一个式样用户列表的式样。

@RequestMapping("/userList")public String index(Model model) {    List<User> users = userService.findAll();    model.addAttribute("users", users);    return "user_list";}

好了,自此用户列表也惩处。底下咱们来运转名目,然后演示一下:

演示

新增经过的演示,探询:

http://localhost:8080/

来到新增用户页面:

图片

7月24日,久久夜色精品国产噜噜亚洲av贝壳集团正式向美国证券交易委员会提交IPO申请文件,拟赴纽交所挂牌上市,股票代码为 BEKE。

因为中国进口猪肉相对较少,国内生猪产业基本是自给自足,对外依存度很低。2017 年中国猪肉产量 5340 万吨,猪肉进口量 121.68 万吨,占比 2.28%。

   据宝马汽车官网,刚刚公布了2016年第一财季财报,息税前净利润为23.68亿欧元。这份财报截至时期为截至2016年3月31日,一起来看看:

填入用户信息美女被张开双腿日出白浆

图片

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

图片

用户细目

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

<!DOCTYPE html><html lang="zh" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8">    <title>用户细目</title></head><body><div id="content">姓名:<input type="text" th:value="${user.uname}"><br/>年事:<input type="text" th:value="${user.age}"><br/>密码:<input type="text" th:value="${user.password}"><br/>手机号码:<input type="text" th:value="${user.tel}"><br/></div></body></html>

在service和完结类辞别添加相应的式样。

//UserService中添加式样User findById(Long id);//UserServiceImpl添加式样@Overridepublic User findById(Long id) {    return userRepository.getOne(id);}

然后在controller中添加式样

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

然后再次运转名目,咱们就平直不错从用户列表中参预到用户细目里。

图片

点击:用户细目。

图片

OK,到此,用户细目也就惩处了。剩下的咱们络续搞修改功能。

用户信息修改

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

<!DOCTYPE html><html lang="zh" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8">    <title>Index</title></head><body><div id="content">    <form action="/updateById" method="post">        <input type="text" th:value="${user.uid}" name="uid"><br/>        姓名:<input type="text" th:value="${user.uname}" name="uname"><br/>        年事:<input type="text" th:value="${user.age}" name="age"><br/>        密码:<input type="text" th:value="${user.password}" name="password"><br/>        手机号码:<input type="text" th:value="${user.tel}" name="tel"><br/>        <button>修改</button>    </form></div></body>

UserRepository中添加更新式样:

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

络续在UserService和完结类中添加想要的式样。

//UserService中添加式样void update(User user);//UserServiceImpl中添加式样@Transactional@Overridepublic void update(User user) {    userRepository.updateById(user.getTel(), user.getUname(), user.getPassword(), user.getUid());}

注释:UserServiceImpl添加的 这个update式样,必须要事务注解@Transactional,不然更新失败。很是信息如下:

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

加上事务注解@Transactional就惩处了。

然后在controller中添加式样

//修改提交@RequestMapping("/updateById")public String updateById(Model model,User user) {    userService.update(user);    return "redirect:/userList";}//跳转到修改页面@RequestMapping("/update/{id}")public String update(Model  model, @PathVariable("id") Long id) {    User user = userService.findById(id);    model.addAttribute("user", user);    return "update";}

再次运转名目,络续来到用户列表页面:

图片

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

图片

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

图片

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

图片

发现此时的用户手机号依然修改结束。

到这里,咱们依然做了用户新增、单个用户信息查询、多个用户信息查询、单个用户信息修改。剩下的删除功能留给全球我方去做。敬佩全球亦然很支吾的就能完成的。

记忆

本文使用了工夫栈:

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

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

注释点:

1、确立信息是极少要小心,不行有误。

2、得我方安设MySQL数据库,然后创建数据库,创建用户表。

3、分层:html页面、controller、service接口、service完结类、repository接口。

好了,一个浅近的用户信息模块就这么了,删除就靠你们我方去完结了。相称浅近的~,如有猜忌、问题的不错随时规划我。

「瞻望」

背面咱们基于这个束缚扩大,比如:用户信息删除、用户登录、用户注册、权限、变装、集成Redis做缓存、使用Redis搞一个漫衍式锁、用户积分排名榜恭候功能。

推选阅读 

万字+图解 Redis,转圜口试!如何快速判断某URL是否在20亿的网址URL齐蚁合?口试官:沉着SQL优化吗?口试决窍点赞越多,bug越少

图片

本站是提供个人学问经管的积聚存储空间,所有这个词内容均由用户发布,不代表本站视力。请注释甄别内容中的规划样式、教导购买等信息,防备拐骗。如发现存害或侵权内容,请点击一键举报。

相关资讯