话不多说,一个小小登录注册的案例向你展示SpringBoot的魅力
1 设计数据库
1.1表结构
1.2属性
id自增主键,name非空约束,唯一约束,password
2 IDEA配置
2.1 pom文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.14</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> </dependencies> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources>
2.2 yml文件配置
spring: datasource: driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource url:jdbc:mysql://localhost:3306/user?characterEncoding=utf8&useUnicode=true username: root password: 1234 mvc: static-path-pattern: /static/** #配置静态路径 mybatis: type-aliases-package: day2.demo.test.bean mapper-locations: classpath:day2/demo/test/mapper/*.xml
3 bean层
3.1 项目结构
3.2 user实体类
package day2.demo.test.bean; public class User { private int id; private String name; private String password; public User(){ } public User(int id, String name, String password) { this.id = id; this.name = name; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }
4 mapper层
4.1 usermapper
package day2.demo.test.mapper; import day2.demo.test.bean.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper { public User selectUserById(int id); public User selectUserByName(String name); public int insertUser(User user); }
4.2 usermapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="day2.demo.test.mapper.UserMapper"> <select id="selectUserById" resultType="User" parameterType="int"> SELECT * from u where id = #{id} </select> <select id="selectUserByName" resultType="User" parameterType="String"> SELECT * from u where NAME = #{NAME} </select> <insert id="insertUser" parameterType="User"> insert into u(name,password) values(#{name},#{password}) </insert> </mapper>
5 service层
package day2.demo.test.service; import day2.demo.test.bean.User; import day2.demo.test.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired UserMapper userMapper; public User selectUserById(int id){ return userMapper.selectUserById(id); } public boolean login(User user){ String name = user.getName(); String password = user.getPassword(); User u1 = userMapper.selectUserByName(name); if(u1==null){ return false; }else{ if(u1.getPassword().equals(password)){ return true; }else{ return false; } } } public boolean zhuCe(User user){ int x = userMapper.insertUser(user); if(x>0){ return true; }else { return false; } } }
6 controller层
package day2.demo.test.controller; import com.sun.deploy.net.HttpResponse; import day2.demo.test.bean.User; import day2.demo.test.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Controller public class UserController { @Autowired UserService userService; //-----------------------------登录注册功能 //登录: @RequestMapping("/Login") public String login(){ return "Login"; } @GetMapping("/result") public String result(HttpServletRequest req, HttpServletResponse resp){ String username = req.getParameter("username"); String password = req.getParameter("password"); User user = new User(); user.setName(username); user.setPassword(password); boolean flag = userService.login(user); if(flag==true){ return "Success"; }else { return "Middle"; } } @GetMapping("/middle") public String middle(){ return "Login"; } //注册: @GetMapping("/zhuCe") public String zhuCe(){ return "ZhuCe"; } @GetMapping("/end") public String end(HttpServletRequest req, HttpServletResponse resp){ String username = req.getParameter("username"); String password = req.getParameter("password"); User user = new User(); user.setName(username); user.setPassword(password); boolean flag = userService.zhuCe(user); if(flag==true){ return "End1"; }else{ return "End2"; } } }
7 html页面
7.1 login页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页面</title> <!-- <link rel="stylesheet" type="text/css" th:href="@{../../static/css/Login.css}" />--> <!--<script type="text/javascript" src="../../static/js/jquery-1.11.3.min.js"></script>--> <style> #s1{ float: left; margin: 50px 0px 0px 100px; } #s2{ float: left; margin: 50px 0px 0px 50px; } </style> <script type="text/javascript"> function f1(){ //1-5个汉字 var regx = /^[\u4e00-\u9fa5]{1,5}$/; var username = document.getElementById("username").value; if(regx.test(username)){ document.getElementById("d1").style.color = "green"; document.getElementById("d1").innerHTML="√"; return true; }else{ document.getElementById("d1").style.color = "red"; document.getElementById("d1").innerHTML="×"; return false; } } function f2(){ //5-12个字母或汉字 var regx = /^[a-zA-Z0-9]{5,12}$/; var password = document.getElementById("password").value; if(regx.test(password)){ document.getElementById("d2").style.color = "green"; document.getElementById("d2").innerHTML="√"; return true; }else{ document.getElementById("d2").style.color = "red"; document.getElementById("d2").innerHTML="×"; return false; } } function subForm(){ if(f1()&&f2()){ return true; } return false; } </script> </head> <body> <div> <form action="/result" method="get" onsubmit="return subForm()"> <table> <tr> <td><span>用户名:</span></td> <td><input id="username" type="text" name="username" placeholder="请输入1-5个汉字" onblur="f1()"><span id="d1"></span></td> </tr> <tr> <td> <span>密码:</span> </td> <td><input id="password" type="password" name="password" placeholder="请输入5-12个字母或数字" onblur="f2()"><span id="d2"></span></td> </tr> </table> <input id="s1" type="submit" value="登录"> </form> <form action="/zhuCe" method="get" > <input id="s2" type="submit" value="注册" onclick="zhuCe()"> </form> </div> </body> </html>
7.2 middle页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="5;url=/middle" /> <title>登录失败</title> <script type="text/javascript" src="../../static/js/jquery-1.11.3.min.js"></script> <script type="text/javascript"> window.onload = function f() { var i =5; var a = setInterval(function () { i--; if(i<=0){ document.getElementById("p1").innerHTML = "登录失败,返回登录界面"; //$("#i1").prop("disabled",false); clearInterval(a); location = "/middle"; }else { document.getElementById("p1").innerHTML = "登录失败,还有"+i+"秒跳转回登录界面"; return false; } },1000) } </script> </head> <body> <p id="p1">登录失败,还有5秒跳转回登录界面</p> <!-- <form action="/middle" method="get"> <input id="i1" type="submit" value="确认" disabled="disabled"> </form>--> </body> </html>
7.3 success页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>登录成功</p> </body> </html>
7.4 zhuce页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> <!-- <link rel="stylesheet" type="text/css" th:href="@{../../static/css/Login.css}" /> <script type="text/javascript" src="../../static/js/jquery-1.11.3.min.js"></script>--> <style type="text/css"> #s1{ float: left; margin: 50px 0px 0px 120px; } </style> <script type="text/javascript"> function f1(){ //1-5个汉字 var regx = /^[\u4e00-\u9fa5]{1,5}$/; var username = document.getElementById("username").value; if(regx.test(username)){ document.getElementById("d1").style.color = "green"; document.getElementById("d1").innerHTML="√"; return true; }else{ document.getElementById("d1").style.color = "red"; document.getElementById("d1").innerHTML="×"; return false; } } function f2(){ //5-12个字母或汉字 var regx = /^[a-zA-Z0-9]{5,12}$/; var password = document.getElementById("password").value; if(regx.test(password)){ document.getElementById("d2").style.color = "green"; document.getElementById("d2").innerHTML="√"; return true; }else{ document.getElementById("d2").style.color = "red"; document.getElementById("d2").innerHTML="×"; return false; } } function subForm(){ if(f1()&&f2()){ return true; } return false; } </script> </head> <body> <form action="/end" method="get" onsubmit="return subForm()"> <table> <tr> <td> <span>用户名:</span></td> <td><input id="username" type="text" name="username" placeholder="请输入1-5个汉字" onblur="f1()"><span id="d1"></span></td> </tr> <tr> <td> <span>密码:</span> </td> <td><input id="password" type="password" name="password" placeholder="请输入5-12个字母或数字" onblur="f2()"><span id="d2"></span></td> </tr> <tr> <td></td> <td><input id="s1" type="submit" value="注册"></td> </tr> </table> </form> </body> </html>
7.5 end1页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册成功</title> <script type="text/javascript" src="../../static/js/jquery-1.11.3.min.js"></script> <script type="text/javascript"> window.onload = function f() { var i =5; var a = setInterval(function () { i--; if(i<=0){ document.getElementById("p1").innerHTML = "注册成功,返回登录界面"; clearInterval(a); location = "/Login"; }else { document.getElementById("p1").innerHTML = "注册成功,还有"+i+"秒跳转回登录界面"; return false; } },1000) } </script> </head> <body> <p id="p1">注册成功,还有5秒跳转回登录界面</p> </body> </html>
7.6 end2页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册失败</title> <script type="text/javascript" src="../../static/js/jquery-1.11.3.min.js"></script> <script type="text/javascript"> window.onload = function f() { var i =5; var a = setInterval(function () { i--; if(i<=0){ document.getElementById("p1").innerHTML = "注册失败,返回登录界面"; clearInterval(a); location = "/Login"; }else { document.getElementById("p1").innerHTML = "注册失败,还有"+i+"秒跳转回登录界面"; return false; } },1000) } </script> </head> <body> <p id="p1">注册失败,还有5秒跳转回登录界面</p> </body> </html>
大功告成,哈哈


