一、添加代码生成器

用来自动为数据库映射类建立:mapper、service、controller

package com.hanmh.utils;

import com.baomidou.mybatisplus.core.toolkit.StringPool;

import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.InjectionConfig;

import com.baomidou.mybatisplus.generator.config.*;

import com.baomidou.mybatisplus.generator.config.po.TableInfo;

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import com.hanmh.pojo.BasePojo;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class HanGenerator {

public static void main(String[] args) {

// 代码生成器

AutoGenerator mpg = new AutoGenerator();

// 全局配置

GlobalConfig gc = new GlobalConfig();

//这样获取到的是父项目的目录

String projectPath = System.getProperty("user.dir");

String pojoProject = "pojo" + "/src/main/java/com/hanmh/pojo";

String otherProject = "admin";

//gc.setOutputDir(projectPath + "/src/main/java");

gc.setAuthor("hanmh");

gc.setOpen(false);

// gc.setSwagger2(true); 实体属性 Swagger2 注解

mpg.setGlobalConfig(gc);

// 数据源配置

DataSourceConfig dsc = new DataSourceConfig();

dsc.setUrl("jdbc:mysql://39.105.231.52:3306/db?useUnicode=true&useSSL=false&characterEncoding=utf8");

// dsc.setSchemaName("public");

dsc.setDriverName("com.mysql.jdbc.Driver");

dsc.setUsername("root");

dsc.setPassword("123456");

mpg.setDataSource(dsc);

// 包配置

PackageConfig pc = new PackageConfig();

pc.setParent("com.hanmh"); //设置父包

//自定义生成路径

Map pathInfo = new HashMap();

pathInfo.put("entity_path", projectPath + "/" + pojoProject); //pojo位置

pathInfo.put("controller_path", projectPath + "/" + otherProject + "/src/main/java/com/hanmh/controller");

pathInfo.put("service_impl_path", projectPath + "/" + otherProject + "/src/main/java/com/hanmh/service/impl");

pathInfo.put("service_path", projectPath + "/" + otherProject + "/src/main/java/com/hanmh/service");

pathInfo.put("mapper_path", projectPath + "/" + otherProject + "/src/main/java/com/hanmh/mapper");

pathInfo.put("xml_path", projectPath + "/" + otherProject + "/src/main/resources/com/hanmh/mapper");

pc.setEntity("pojo"); //实体类

pc.setPathInfo(pathInfo);

mpg.setPackageInfo(pc);

// 自定义配置

InjectionConfig cfg = new InjectionConfig() {

@Override

public void initMap() {

// to do nothing

}

};

// 如果模板引擎是 freemarker

String templatePath = "/templates/mapper.xml.ftl";

// 策略配置

StrategyConfig strategy = new StrategyConfig();

strategy.setNaming(NamingStrategy.underline_to_camel);

strategy.setColumnNaming(NamingStrategy.underline_to_camel);

//生成时,继承的父类

strategy.setSuperEntityClass(BasePojo.class);

strategy.setEntityLombokModel(true);

strategy.setRestControllerStyle(true);

// 公共父类

strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");

// 写于父类中的公共字段

strategy.setSuperEntityColumns("id");

strategy.setInclude("ums_admin");

strategy.setControllerMappingHyphenStyle(true);

strategy.setTablePrefix(pc.getModuleName() + "_");

mpg.setStrategy(strategy);

mpg.setTemplateEngine(new FreemarkerTemplateEngine());

mpg.execute();

}

}

二、导入需要的jar包

前期需要导入的包有:mybatis-plus、mysql、duracloud(工具包)、pojo、spring-boot-starter-web

com.hanmh

pojo

org.projectlombok

lombok

com.baomidou

mybatis-plus-boot-starter

org.springframework.boot

spring-boot-starter-web

mysql

mysql-connector-java

org.duracloud

common

三、创建启动类

启动类必须创建在父包下面,注意在SpringBoot中,并不是不扫包,而是框架帮助完成了这件事,它会扫描启动类所在包下的所有类及其子包中的类

package com.hanmh;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

@MapperScan("com.hanmh.mapper")

public class AdminRun {

public static void main(String[] args) {

SpringApplication.run(AdminRun.class);

}

}

四、创建配置文件(application.yml)

server:

port: 8080

spring:

application:

name: admin

datasource:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://39.105.231.52:3306/db?useUnicode=true&useSSL=false&characterEncoding=utf8

username: root

password: 123456

hikari:

maximum-pool-size: 20

minimum-idle: 10

servlet:

#文件传输配置

multipart:

max-file-size: 5MB

max-request-size: 10MB

#运行的过程中输出sql语句(日志信息)

logging:

level:

com.hanmh.mapper: debug

五、返回值统一定义

1、ResultJson

package com.hanmh.pojo;

import lombok.Data;

@Data

public class ResultJson {

private Integer code; //200成功,500错误

private Object obj;

private String message;

public ResultJson(ResultCode resultCode, Object obj) {

this.code = resultCode.getCode();

this.message = resultCode.getMessage();

this.obj = obj;

}

public ResultJson(ResultCode resultCode, Object obj, String message) {

this.code = resultCode.getCode();

this.message = message;

this.obj = obj;

}

public static ResultJson success(Object obj) {

return new ResultJson(ResultCode.SUCCESS, obj);

}

public static ResultJson success(Object obj, String message) {

return new ResultJson(ResultCode.SUCCESS, obj, message);

}

public static ResultJson error(Object obj) {

return new ResultJson(ResultCode.ERROR, obj);

}

public static ResultJson error() {

return new ResultJson(ResultCode.ERROR, null);

}

public static ResultJson error(String message) {

return new ResultJson(ResultCode.ERROR, null, message);

}

}

2、ResultCode

定义4种返回代号和返回信息,使用枚举类进行实现

package com.hanmh.pojo;

import lombok.Data;

import lombok.Getter;

@Getter

public enum ResultCode {

SUCCESS(200, "请求成功"),

ERROR(500, "请求失败"),

NOAUTH(401, "用户未登录或者登录超时"), //操作时

NOPREMISSION(403, "没有此权限");

private Integer code;

private String message;

//枚举类型的构造默认为私有

private ResultCode(Integer code, String message) {

this.code = code;

this.message = message;

}

}

六、创建基础pojo

在所有的数据库表种,共有的字段是ID,现在将id独立出来

1、导入 mybatis-plus-annotation包

为了使用该包内部的IdType等类内部提供的注解,以告诉BasePojo中某些字段在数据库表中的存在与否

com.baomidou

mybatis-plus-annotation

3.0-RELEASE

2、BasePojo类

package com.hanmh.pojo;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.annotation.TableField;

import com.baomidou.mybatisplus.annotation.TableId;

import lombok.Data;

import org.omg.CORBA.IDLType;

@Data

public class BasePojo {

@TableId(type = IdType.AUTO)

private Integer id;

//做分页操作需要的字段

@TableField(exist = false)

private Integer pageNO;

@TableField(exist = false)

private Integer pageSize;

}

七、后端添加数据

1、密码加密

(1)需要使用安全包提供加密服务(security)

org.springframework.security

spring-security-core

2、将加密类(BCryptPasswordEncoder)放入IOC容器

在SpringBoot环节,需要将某个类加入IOC容器,就需要在配置类中,配置@Bean节点

@Configuration

public class AdminConfig {

@Bean

//将BCryptPasswordEncoder放进IOC容器

BCryptPasswordEncoder getPasswordEncoder() {

return new BCryptPasswordEncoder();

}

}

注:使用此方法对数据进行加密的原因:此加密方法相同明文密码多次可以生成不同的密文,而MD5相同密码则会生成相同的密文

3、后端添加数据简单实现

@PostMapping("/add")

ResultJson add(UmsAdmin umsAdmin) throws InterruptedException, IOException {

//对密码加密

umsAdmin.setPassword(passwordEncoder.encode(umsAdmin.getPassword()));

//TimeUnit.SECONDS.sleep(2);

return ResultJson.success(adminService.save(umsAdmin), "添加用户成功");

}

八、前端页面添加功能

1、添加用户(按钮和弹窗)

:elementUI按钮标签

添加用户

:title="dialog.title"

:visible.sync="dialog.show"

:close-on-click-modal="false"

width="450px">

(1)添加用户功能

add() {

this.dialog.show = true

this.dialog.title = "添加用户"

}

(2)添加内容弹窗

保存

export default{

name: 'AdminEdit',

props:{

show:{

type: Boolean

}

},

data(){

return {

forms: {

loginName: '',

name: '',

password: '',

email: '',

phone: '',

imgobj: '这是一张图片'

},

rules:{

loginName:[

{required: true, message: '请输入登录名', trigger: 'blur'},

{min : 1, max: 20, message: '长度在1-20之间', trigger: 'change'}

],

name:[

{required: true, message: '请输入昵称', trigger: 'blur'},

{min : 1, max: 20, message: '长度在1-20之间', trigger: 'change'}

],

password:[

{required: true, message: '请输入密码', trigger: 'blur'},

{min : 1, max: 100, message: '长度在1-100之间', trigger: 'change'}

],

email:[

{required: true, message: '请输入邮箱', trigger: 'blur'},

{min : 1, max: 50, message: '长度在1-50之间', trigger: 'change'},

{type: 'email', message: '请输入正确格式的邮箱', trigger: 'blur'}

],

phone:[

{required: true, message: '请输入电话号', trigger: 'blur'},

{min : 1, max: 20, message: '长度在1-20之间', trigger: 'change'},

{pattern: /^1([38][0-9]|4[5-9]|5[0-3,5-9]|66|7[0-8]|9[89])[0-9]{8}$/, message: '请输入正确的手机号', trigger: 'blur'}

],

}

}

},

methods:{

save() {

//提交表单前需要对表单再次进行验证

//获取表单对象

//表单二次验证

this.$refs['ruleForm'].validate((flag) => {

//如果通过验证,则进行表单数据提交

if(flag === true) {

this.request('/umsadmin/add', 'post', this.forms, response => {

this.$message.success(response.message)

})

}

})

},

changeimg(file, fileList) {

this.forms.imgobj = file.raw

},

removeimg() {

this.forms.imgobj = null

}

}

}

2、此时前端给后端发post请求会出现跨域错误

跨域错误解决需要在后端植入跨域过滤器(Bean节点)

//跨域问题解决

@Bean

CorsFilter getCorsFilter() {

UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();

CorsConfiguration corsConfiguration = new CorsConfiguration();

corsConfiguration.addAllowedHeader("*");

corsConfiguration.addAllowedMethod("*");

corsConfiguration.addAllowedOrigin("*"); //域名

configurationSource.registerCorsConfiguration("/**", corsConfiguration);

return new CorsFilter(configurationSource);

}

到此这篇关于SpringBoot+Vue实现数据添加功能的文章就介绍到这了,更多相关SpringBoot Vue数据添加内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

添加数据功能java,SpringBoot+Vue实现数据添加功能相关推荐

  1. 基于Java Springboot+Vue+MyBatis音乐播放系统设计实现

    ?? 作者主页:Java李杨勇? ?? 简介:Java领域优质创作者??.Java李杨勇公号作者 简历模板.学习资料.面试题库.技术互助[关注我,都给你] ?? 欢迎点赞 ?? 收藏 留言 ?? 视频 ...

  2. 基于javaweb的精美物流管理系统(java+springboot+vue+mysql)

    基于javaweb的精美物流管理系统(java+springboot+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclipse/idea/ ...

  3. springboot+vue实现手机验证码功能

    springboot+vue实现手机验证码功能 榛子云短信平台用户中心注册登录(有免费的一条消息,剩下的需要买)(阿里云个人得备案) 在springboot中加入依赖,用到了redis,阿里的fast ...

  4. 基于javaweb的电影院会员管理系统(java+springboot+vue+element-ui+mysql)

    基于javaweb的电影院会员管理系统(java+springboot+vue+element-ui+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:e ...

  5. 基于javaweb的调查问卷管理系统(java+springboot+vue+elementui+mysql)

    基于javaweb的调查问卷管理系统(java+springboot+vue+elementui+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:ecl ...

  6. java springboot VUE 在线学习平台系统开发mysql数据库web结构java编程计算机网页源码maven项目前后端分离

    一.源码特点   springboot VUE 在线学习平台系统是一套完善的完整信息管理类型系统 前后端分离,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系 ...

  7. springboot+vue球员数据统计分析系统java

    本球员转会管理系统是将球员转会管理系统功能模块主要分为管理员模块.管理员添加个人中心.用户管理.足球赛事管理,球队管理.球队简介管理等操作 本系统结合计算机系统的结构.概念.模型.原理.方法,在计算机 ...

  8. SpringBoot+VUE实现数据表格

    文章目录 前言 一.前端准备 1. 基础界面 2. 导入JS文件 二.后端准备 1. 创建实体类 2. Controller层 3. Service层 ①. UserService接口 ②. User ...

  9. Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)

    源码获取:博客首页 "资源" 里下载! 项目描述:这是一个基于SpringBoot+Vue框架开发的仿小米电子产品售卖商城系统.首先,这是一个前后端分离的项目,代码简洁规范,注释说 ...

最新文章

  1. 【多线程】ConcurrentLinkedQueue 的实现原理
  2. 求生2本地服务器怎么修改参数,《求生之路2》服务器指令及难度参数设置(难度篇)...
  3. World Wind Java开发之三 显示状态栏信息(转)
  4. golang基础语法
  5. ORACLE HANDBOOK系列之十:字符集、编码以及Oracle的那些事
  6. Oracle索引状态查询与索引重建
  7. linux系统编码启动,Linux启动流程介绍
  8. JDBC.property 配置文件中链接数据库的配置
  9. 串行设备造成鼠标乱跑的问题
  10. unix环境高级编程读后感
  11. docker运维工具
  12. 使用python bloomfilter实现大文本去重
  13. PCB设计及硬件编程学习
  14. 不同证券的资产收益率统计(2012-2020年)
  15. 织梦套用html模板文件,织梦CMS套模板建站流程
  16. 操作系统实验三虚拟存储器管理之模拟页面置换算法(FIFOLRU)
  17. 37手游基于云平台的大数据建设实践
  18. Xamarin.Forms学习之路——黑猫时钟App
  19. 删除U盘上的EFI分区
  20. ubuntu: 查看cuda版本

热门文章

  1. 本地应用 v-for 指令
  2. 复习计算机网络day1-计算机网络的初步了解
  3. 点到点与端到端通信有什么区别:
  4. 实战:车牌识别之车牌定位
  5. 论文阅读笔记四十:Deformable ConvNets v2: More Deformable, Better Results(CVPR2018)
  6. 四、Input框改placeholder中字体的颜色
  7. 树的分类,特性与遍历
  8. 游戏行业两大核心问题:数据挖掘与安全
  9. python windows错误码
  10. 实验 4 在分支循环结构中调用自定义函数