1.数据库的设计
首台用户表和商品表
create database springboot;
#创建后台用户表
drop database springboot;
use springboot;
create table users(
userId int auto_increment primary key,
username varchar(20),
password varchar(20),
flag int
);
select * from users;
insert into users(username,password,flag) values('admin','123456',1),('root','123456',1);
#创建商品分类表
create table category(
categoryId int auto_increment primary key,
categoryName varchar(20)
);
select * from category;
insert into category
(categoryName)
select '饮品' union
select '食品'
#创建商品信息表
create table goods(
goods int auto_increment primary key,
goodsName varchar(200),
price numeric(5,1),
address varchar(200),
produceDate date,
picture varchar(200),
categoryId int,
foreign key(categoryId)
references category(categoryId)
);
select * from goods;
2.创建SpringBoot初始化项目,并导入pom依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
配置数据源
server.port=8088
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
启动项目-项目初始化搭建成功。
学习知识
@CrossOrigin注解
Spring 从4.2版本后开始支持 @CrossOrigin 注解实现跨域,这在一定程度上简化了我们实现跨域访问的开发成本,在需要跨域访问的方法或者类上加上这个注解便大功告成
通过mybatis-逆向工程插件---生成实体类和相应接口
并实现查询用户
@RestController注解相当于
@ResponseBody + @Controller合在一起的作用
2.实现页面跳转登录-画出页面
创建controller层,实现页面的跳转,登录页面和注册页面
package com.liuboss.boot.controller;
import com.liuboss.boot.mapper.UsersMapper;
import com.liuboss.boot.model.Users;
import com.liuboss.boot.util.ReturnT;
import org.apache.catalina.Session;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
@RequestMapping("/admin")
@Controller
public class UserCoontroller {
@Autowired
private UsersMapper usersMapper;
/*@GetMapping("findUsers")
public Object findUsers(Integer userId){
return usersMapper.selectByPrimaryKey(userId);
}*/
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "hello";
}
@RequestMapping("/login_show")
public String login_show(){
return "admin/login";
}
@RequestMapping("/login_submit")
public String login_submit(Users users, HttpSession session, Model model){
Users u = usersMapper.selectByPrimaryKey(users);
//根据用户和密码进行登录校验
if(u==null){
model.addAttribute("err","用户名密码不正确!");
return "/admin/login";
}
//将登录的账号页面对象存入session,用于会话跟踪管理
session.setAttribute("adminUser",u);
return "admin/index";
}
}
画出登录页面将登录页面 在templates文件夹下创建admin文件夹,用于实现登录login.html
<!DOCTYPE html>
<html lang="en" :xmlns:th="http://www.thymeleaf.com">
<head>
<meta charset="UTF-8">
<title>后台登录</title>
</head>
<body>
<div class="frm">
<div class="title">
后台登录
</div>
<from>
<table>
<tr>
<td>用户名</td>
<td>
<input type="text" name="userName">
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
<input type="submit" name="登录">
</td>
</tr>
</table>
</from>
</div>
</body>
</html>
访问路径http://localhost:8088/admin/login_show 实现登录页面展示
为测试方便-controller中进行创建hello为测试方便
@Controller
public class Home {
@RequestMapping("/")
@ResponseBody
public String index(){
return "欢迎!!!<br/><a href='admin/login_show'>访问后台</a>";
}
}