新建Springboot项目完成简单登录增删改查

6 篇文章 0 订阅

都知道Springboot无配置,简单开发框架,我们使用IDE工具来编译。
提供了:登录、注册、查询、删除、修改
注意:文章只提供入门小白


源码下载 SpringBoot项目

1、新建项目

方法一、File–Project
在这里插入图片描述
方法二、或者重新建一个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
web
在这里插入图片描述
模版引擎
在这里插入图片描述
数据库
在这里插入图片描述
下一步
在这里插入图片描述
新建完成
在这里插入图片描述

2、连接数据库

数据库名 test
一张表
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

jpa.database=MYSQL
jpa.show-sql=true

jpa.hibernate.ddl-auto=update
jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy

jpa.properties.hibernate=
jpa.properties.dialect=org.hibernate.dialect.MySQL5Dialect

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、新建包和页面

在这里插入图片描述

4、代码

4.1、pojo
package com.zx.pojo;

public class User {
    private Integer id;
    private String username;
    private String pwd;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

4.2、dao
package com.zx.dao;

import com.zx.pojo.User;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

@Mapper
public interface UserMapper {

    /**
     * 查询
     * @return
     */
    @Select("select *from user")
    List<User>selectUser();

    /**
     * id查询
     * @param user
     * @return
     */
    @Select("select * from user where id=#{id}")
    Map<String,Object> IdselectUser(User user);
    /**
     * 注册
     * @param user
     */
    @Insert("insert into user (username,pwd) values(#{username},#{pwd})")
    void adduser(User user);

    /**
     * 查询是否有一致用户名
     * @param user
     * @return
     */
    @Select("select * from user where username = #{username}")
    List<User> Fituser(User user);

    /**
     * 登录
     * @param user
     * @return
     */
    @Select("select *from user where username = #{username} and pwd =#{pwd}")
    List<User> LoginUser(User user);

    /**
     * 修改
     * @param user
     */
    @Update("update user set username=#{username},pwd=#{pwd} where id=#{id}")
    void update(User user);

    /**
     * 删除
     * @param user
     */
    @Delete("delete from user where id=#{id}")
    void Delete(User user);

}

4.3、Controller
package com.zx.controller;

import com.zx.dao.UserMapper;
import com.zx.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

@Controller
public class UserController {

    @Autowired
    private UserMapper userMapper;





    @RequestMapping("/login")
    public String index(){
        return "index.html";
    }

    @RequestMapping("/red")
    public String red(){
        return "error.html";
    }

    /**
     * 登录 与查询
     * @param user
     * @param model
     * @return
     */
    @RequestMapping("loginuser")
    public String loginuser(User user ,Model model){
        List<User> loginuserto=userMapper.LoginUser(user);
        if(loginuserto.size()>0){
            //查询用户
            List<User> listuser=userMapper.selectUser();
            model.addAttribute("listuser",listuser);
            return "main.html";
        }else {
            model.addAttribute("error","登录失败");
            return "error.html";
        }

    }




    /**
     * 注册用户
     * @param req
     * @param user
     * @param regpwd
     * @param model
     * @return
     */
    @RequestMapping("/reglogin")
    public String reglogin(HttpServletRequest req,User user , String regpwd, Model model){
        if(user.getPwd()!=null&&user.getUsername()!=null&&regpwd!=null){
            if(user.getPwd().equals(regpwd)){
                List<User> fituser= this.userMapper.Fituser(user);
                if(fituser.size()>0){
                    req.setAttribute("error","以注册");
                    return "error.html";
                }
                try{
                    this.userMapper.adduser(user);
                    //model.addAttribute("error","成功");
                    req.setAttribute("error","成功");
                    return "error.html";
                }catch (Exception e){
                    e.printStackTrace();
                    //model.addAttribute("error","失败");
                    req.setAttribute("error","失败");
                    return "error.html";
                }
            }else {
               // model.addAttribute("error","两次密码一致");
                req.setAttribute("error","两次密码一致");
                return "error.html";
            }

        }else {
            //model.addAttribute("error","不能为空");
            req.setAttribute("error","不能为空");
            return "error.html";
        }
    }


    /**
     * 删除
     * @param user
     * @return
     */
    @RequestMapping("deleteuser")
    @ResponseBody
    public String DeleteUser(User user){
        try {
            String obj="1";
            this.userMapper.Delete(user);
            return obj;
        }catch (Exception e){
            e.printStackTrace();
            String obj="0";
            return obj;
        }
    }


    /**
     * id查询
     * @param user
     * @return
     */
    @RequestMapping("Iduser")
    @ResponseBody
    public Map<String,Object> Iduser(User user){
          Map<String,Object> iduser=  this.userMapper.IdselectUser(user);
          return iduser;

    }
    @RequestMapping("upuser")
    @ResponseBody
    public String upuser(User user){
        try {
            String obj="1";
            this.userMapper.update(user);
            return obj;
        }catch (Exception e){
            e.printStackTrace();
            String obj="0";
            return obj;
        }
    }


}

4.3、登录页面index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

<head>
    <meta charset="UTF-8">
    <title>动画注册登录页面</title>
    <link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="css/style.css">
</head>

<body>
<div class="materialContainer">
    <div class="box">
        <form th:action="@{~/loginuser}" method="post" autocomplete="off">
            <div class="title">登录</div>
            <div class="input">
                <label for="name">用户名</label>
                <input type="text" name="username" id="name">
                <span class="spin"></span>
            </div>
            <div class="input">
                <label for="pass">密码</label>
                <input type="password" name="pwd" id="pass">
                <span class="spin"></span>
            </div>
            <div class="button login">
                <button type="submit">
                    <span>登录</span>
                    <i class="fa fa-check"></i>
                </button>
            </div>
            <a href="javascript:" class="pass-forgot">忘记密码?</a>
        </form>
    </div>

    <div class="overbox">
        <form th:action="@{~/reglogin}" method="post" autocomplete="off">
            <div class="material-button alt-2">
                <span class="shape"></span>
            </div>
            <div class="title">注册</div>
            <div class="input">
                <label for="regname">用户名</label>
                <input type="text" name="username" id="regname">
                <span class="spin"></span>
            </div>
            <div class="input">
                <label for="regpass">密码</label>
                <input type="password" name="pwd" id="regpass">
                <span class="spin"></span>
            </div>
            <div class="input">
                <label for="reregpass">确认密码</label>
                <input type="password" name="regpwd" id="reregpass">
                <span class="spin"></span>
            </div>
            <div class="button">
                <button type="submit">
                    <span>注册</span>
                </button>
            </div>
        </form>
    </div>

</div>
<script src="js/jquery.min.js"></script>
<script src="js/index.js"></script>
</body>

</html>
4.3、登录页面main.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	  xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"

>

<head>
<meta charset="UTF-8">
<title>主页面</title>
</head>
<body>
<table border="1">
	<thead>
		<tr>
			<th>序号</th>
			<th>id</th>
			<th>用户名</th>
			<th>密码</th>
			<th>操作</th>
		</tr>
	</thead>

	<tbody th:each="map,iterStat : ${listuser}">
			<tr >
				<td th:text="${iterStat.index}"></td>
				<td th:text="${map.id}"></td>
				<td th:text="${map.username}"></td>
				<td th:text="${map.pwd}"></td>
				<td>
					<button th:value="${map.id}" onclick="update(this)">修改</button>
					<button th:value="${map.id}" onclick="deletes(this)">删除</button>
				</td>
			</tr>
	</tbody>
</table>
<!--弹窗--><br><br><br><br><br><br>
<div style="display: none" id="tos">
	<form autocomplete="off">
		<input type="text" id="username" name="username"><br>
		<input type="text" id="pwd" name="pwd"><br>
		<input type="hidden" id="id" name="id"><br>
		<input type="button" id="update" value="保存修改"><br>
	</form>

</div>
<script src="js/jquery.min.js"></script>
<script>
	//修改 回填
	function update(q) {
		$("#tos").fadeIn(100);
		var id=q.value;
		$.post("/Iduser",{id:id},function (iduser) {
			$("#username").val(iduser.username);
			$("#pwd").val(iduser.pwd);
			$("#id").val(iduser.id);
		})
	}

	//保存修改
	$("#update").click(function () {
		var username=$("#username").val();
		var pwd=$("#pwd").val();
		var id=$("#id").val();
		$.post("upuser",{username:username,pwd:pwd,id:id},function (obj) {
			if(obj==1){
				alert("成功")
				location.reload();//刷新浏览器
			}else if(obj==0){
				alert("失败")
			}
		})
	})

	//删除
	function deletes(T) {
		var id=T.value;
		var t=confirm("你要删除他吗?")
        if(t==true){//@{~/loginuser}
            $.post("/deleteuser",{id:id},function (obj) {
                if(obj==1){
                    alert("成功")
                    location.reload();//刷新浏览器
                }else if(obj==0){
                    alert("失败");
                }
            })
        }

	}
</script>
</body>
</html>
4.3、登录页面error.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
	  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	  xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4
">

<head>
<meta charset="UTF-8">
<title>返回页面</title>
</head>
<body>
<h1 th:text="${error}"></h1>
</body>
</html>

5、演试效果

注册页面

在这里插入图片描述
登录页面

_70#pic_center)
主页面

在这里插入图片描述

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
【2021年,将Spring全家桶的课程进行Review,确保不再有课程的顺序错乱,从而导致学员看不懂。进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并开始加入高阶Spring Security等内容,一步步手把手教你从零开始学会应用Spring,课件将逐步进行上传,敬请期待!】 本课程是Spring全家桶系列课程的第三部分Spring Boot,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Spring Boot核心知识点:整合Web(如:JSP、Thymeleaf、freemarker等的整合)的开发、全局异常处理、配置文件的配置访问、多环境的配置文件设置、日志Logback及slf4j的使用、国际化设置及使用, 并在最后以一个贯穿前后台的Spring Boot整合Mybatis的案例为终奖,使大家快速掌握Spring的核心知识,快速上手,为面试、工作都做好充足的准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,建议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。 【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验  【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值