目录
一、使用layui编写登录功能。
二、使用步骤
2.1.新建项目加依赖
2.2.使用mybatics-plus自动生成代码
2.2.1配置pom.xml
2.2.2加入自动生成的代码
3.配置yml文件
4.编写Service层
5.编写controller层
6.配置启动类(必须指定mapper)
7.导入前端所需js&css文件&md5.js(js.文件私聊提供)
编辑8.编写ftl
9.测试
总结
一、使用layui编写登录功能。
layui 是一套开源的 Web UI 解决方案,其内部采用的是自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,极易上手,拿来即用。
二、使用步骤
2.1.新建项目加依赖
如下(示例):
2.2.使用mybatics-plus自动生成代码
2.2.1配置pom.xml
代码如下(示例):
com.baomidou mybatis-plus-generator3.5.2 com.baomidou mybatis-plus-boot-starter3.5.2
2.2.2加入自动生成的代码
- 新建包----- generator
- 新建类 ------ MybatisPlusGenerator
package com.zking.layui01.generator;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@SuppressWarnings("all")
@Slf4j
@Data
public class MybatisPlusGenerator {
protected static String URL = "jdbc:mysql://localhost:3306/t271?useEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false";
protected static String USERNAME = "root";
protected static String PASSWORD = "123";
protected static DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig.Builder(URL, USERNAME, PASSWORD);
public static void main(String[] args) {
FastAutoGenerator.create(DATA_SOURCE_CONFIG)
.globalConfig(
(scanner, builder) ->
builder.author(scanner.apply("请输入作者名称?"))
.fileOverride()
.outputDir(System.getProperty("user.dir") + "\src\main\java")
.commentDate("yyyy-MM-dd")
.dateType(DateType.TIME_PACK)
)
.packageConfig((builder) ->
builder.parent("com.zking.layui01")
.entity("pojo")
.service("service")
.serviceImpl("service.impl")
.mapper("mapper")
.xml("mapper.xml")
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "\src\main\resources\mapper"))
)
.injectionConfig((builder) ->
builder.beforeOutputFile(
(a, b) -> log.warn("tableInfo: " + a.getEntityName())
)
)
.strategyConfig((scanner, builder) ->
builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))
.addTablePrefix("tb_", "t_","lay_")
.entityBuilder()
.enableChainModel()
.enableLombok()
.enableTableFieldAnnotation()
.controllerBuilder()
.enableRestStyle()
.enableHyphenStyle()
.build())
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
protected static List getTables(String tables) {
return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
}
执行如图:
3.配置yml文件
spring:
application:
name: layui
freemarker:
request-context-attribute: req
cache: false
charset: utf-8
allow-request-override: false
check-template-location: true
content-type: text/html
expose-request-attributes: true
expose-session-attributes: true
suffix: .ftl
template-loader-path: classpath:/templates/
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123
url: jdbc:mysql://localhost:3306/t271?useUnicode=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf-8
server:
port: 8080
4.编写Service层
package com.zking.layui01.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zking.layui01.pojo.User;
import com.zking.layui01.mapper.UserMapper;
import com.zking.layui01.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;
@Service
public class UserServiceImpl extends ServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public String login(User user) {
User one = userMapper.selectOne(new QueryWrapper().eq("account", user.getAccount()));
if (one==null){
return "用户名不存在";
}
// 加密前端密码
String pwd = DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets.UTF_8));
//比较密码
if (!pwd.equals(one.getPassword())){
return "密码错误";
}
return "登录成功";
}
}
5.编写controller层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@PostMapping("/login")
public String login(User user){
return userService.login(user);
}
}
6.配置启动类(必须指定mapper)
@SpringBootApplication
@MapperScan("com.zking.layui01.mapper")
public class Layui01Application {
public static void main(String[] args) {
SpringApplication.run(Layui01Application.class, args);
}
}
7.导入前端所需js&css文件&md5.js(js.文件私聊提供)
8.编写ftl
-
-
-
-
新用户注册
-
忘记密码
- 新建包----- generator
- 新建类 ------ MybatisPlusGenerator
package com.zking.layui01.generator; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import com.baomidou.mybatisplus.generator.fill.Column; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.Arrays; import java.util.Collections; import java.util.List; @SuppressWarnings("all") @Slf4j @Data public class MybatisPlusGenerator { protected static String URL = "jdbc:mysql://localhost:3306/t271?useEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false"; protected static String USERNAME = "root"; protected static String PASSWORD = "123"; protected static DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig.Builder(URL, USERNAME, PASSWORD); public static void main(String[] args) { FastAutoGenerator.create(DATA_SOURCE_CONFIG) .globalConfig( (scanner, builder) -> builder.author(scanner.apply("请输入作者名称?")) .fileOverride() .outputDir(System.getProperty("user.dir") + "\src\main\java") .commentDate("yyyy-MM-dd") .dateType(DateType.TIME_PACK) ) .packageConfig((builder) -> builder.parent("com.zking.layui01") .entity("pojo") .service("service") .serviceImpl("service.impl") .mapper("mapper") .xml("mapper.xml") .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "\src\main\resources\mapper")) ) .injectionConfig((builder) -> builder.beforeOutputFile( (a, b) -> log.warn("tableInfo: " + a.getEntityName()) ) ) .strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))) .addTablePrefix("tb_", "t_","lay_") .entityBuilder() .enableChainModel() .enableLombok() .enableTableFieldAnnotation() .controllerBuilder() .enableRestStyle() .enableHyphenStyle() .build()) .templateEngine(new FreemarkerTemplateEngine()) .execute(); } protected static List执行如图:getTables(String tables) { return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(",")); } }
spring:
application:
name: layui
freemarker:
request-context-attribute: req
cache: false
charset: utf-8
allow-request-override: false
check-template-location: true
content-type: text/html
expose-request-attributes: true
expose-session-attributes: true
suffix: .ftl
template-loader-path: classpath:/templates/
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123
url: jdbc:mysql://localhost:3306/t271?useUnicode=true&serverTimezone=Asia/Shanghai&useSSL=false&characterEncoding=utf-8
server:
port: 8080
4.编写Service层
package com.zking.layui01.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zking.layui01.pojo.User;
import com.zking.layui01.mapper.UserMapper;
import com.zking.layui01.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.nio.charset.StandardCharsets;
@Service
public class UserServiceImpl extends ServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public String login(User user) {
User one = userMapper.selectOne(new QueryWrapper().eq("account", user.getAccount()));
if (one==null){
return "用户名不存在";
}
// 加密前端密码
String pwd = DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets.UTF_8));
//比较密码
if (!pwd.equals(one.getPassword())){
return "密码错误";
}
return "登录成功";
}
}
5.编写controller层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@PostMapping("/login")
public String login(User user){
return userService.login(user);
}
}
6.配置启动类(必须指定mapper)
@SpringBootApplication
@MapperScan("com.zking.layui01.mapper")
public class Layui01Application {
public static void main(String[] args) {
SpringApplication.run(Layui01Application.class, args);
}
}
7.导入前端所需js&css文件&md5.js(js.文件私聊提供)
8.编写ftl
-
-
-
-
新用户注册
-
忘记密码
package com.zking.layui01.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zking.layui01.pojo.User; import com.zking.layui01.mapper.UserMapper; import com.zking.layui01.service.IUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.DigestUtils; import java.nio.charset.StandardCharsets; @Service public class UserServiceImpl extends ServiceImplimplements IUserService { @Autowired private UserMapper userMapper; @Override public String login(User user) { User one = userMapper.selectOne(new QueryWrapper ().eq("account", user.getAccount())); if (one==null){ return "用户名不存在"; } // 加密前端密码 String pwd = DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets.UTF_8)); //比较密码 if (!pwd.equals(one.getPassword())){ return "密码错误"; } return "登录成功"; } }
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@PostMapping("/login")
public String login(User user){
return userService.login(user);
}
}
6.配置启动类(必须指定mapper)
@SpringBootApplication
@MapperScan("com.zking.layui01.mapper")
public class Layui01Application {
public static void main(String[] args) {
SpringApplication.run(Layui01Application.class, args);
}
}
7.导入前端所需js&css文件&md5.js(js.文件私聊提供)
8.编写ftl
-
-
-
-
新用户注册
-
忘记密码
8.编写ftl
-
-
-
-
新用户注册
-
忘记密码
新用户注册
忘记密码
9.测试
总结
- md5加密不只是在后端使用,前端也需要。这样才能有效防止隐私泄露。
-
framework非常不稳定容易引起js文件错误(求指导)
framework非常不稳定容易引起js文件错误(求指导)



