当前位置:   article > 正文

前后端分离页面(从数据库到前端、后端手把手教你如何搭建 -- 功能实现:增加查询) 前端数据无法展示-跨域问题_如何将前端页面和后端数据库分开

如何将前端页面和后端数据库分开

目录

一、准备条件

前台

后台

 二、数据库设计

建议不要导入,导入有乱码的风险;新建查询运行下面代码更快捷。

 三、导入前端项目

导入后使用命令行打开黑窗口,测试一下有没有npm -v环境

 如果出现命令无效,就使用管理员身份打开黑窗口

npm install 

npm run dev

四、后台项目导入步骤及编码

 如果忘记电脑的maven在那个盘,使用 mvn -version 查找本机 maven 地址​编辑

生成mapper类中添加注解 @Repository 

添加模糊查询方法

编写SQL

 编写service ​编辑

编写实现类

创建controller类

 controller层代码提供

五、前端编码

action.js

index.js 

 编写页面,BookList.vue

 六、前后台代码提供

后台:

application.yml

jdbc.properties

generatorConfig.xml

BookMapper

BookMapper.xml

BookService

BookServiceImpl

BookController

前台:

action.js

router-index.js

BookList.vue


一、准备条件

小编事先准备了一份前台、后台的基本架构的代码,如果你手上有现有的那就按照小编的步骤来就ok,没有就需要创建spa项目、后台项目。

前台:

   

 后台:

   

 二、数据库设计

建议不要导入,导入有乱码的风险;新建查询运行下面代码更快捷。

  1. create database if not exists bookshop default charset utf8 collate utf8_general_ci;
  2. use bookshop;
  3. create table t_book(
  4. id int not null auto_increment primary key comment '书本编号',
  5. bookname varchar(50) not null comment '书本名称',
  6. price float default 0 comment '书本价格',
  7. booktype varchar(20) comment '书本类型'
  8. ) comment '书本信息表';
  9. insert into t_book(bookname,price,booktype) values
  10. ('三国演义',110,'战争'),
  11. ('西游记',120,'神话'),
  12. ('红楼梦',130,'古典');

      

 三、导入前端项目

导入手上有的,没有就创建,至于怎么创建,小编就不详讲了。

怎么导入嘞,你找到项目用鼠标拖进去,也可以右键找到项目地址导入。

 

导入后使用命令行打开黑窗口,测试一下有没有npm -v环境

 如果出现命令无效,就使用管理员身份打开黑窗口

 

 跳转项目所在盘,将路径复制进去,再输入npm -v

npm install 

npm run dev

或者在HBuilder X中,启动前端看一下页面能不能展示出来

 前端页面可以展示出来,准备后台编码

四、后台项目导入步骤及编码

打开IDEA

找到,选中

 选中maven,finish下一步

 如果忘记电脑的maven在那个盘,使用 mvn -version 查找本机 maven 地址

 项目导入idea中,第一步-->Settings-->maven-->配置maven

看 application.yml 该改的改一改,数据库名称什么的

 

 jdbc.properties 也改巴改巴,总之改为你电脑的数据库的密码或名称就ok

generatorConfig.xml 更改指定数据库jdbc驱动jar包的位置,你的jar放哪嘞,应该忘记了吧,问题不大 
mysql-connector-java\5.1.44\  拷贝它,在本机目录中搜索

亦或者,打开更改配置maven的地址

 手动复制地址过来后,检查一下Javabean生成位置等,就可以编辑生成表了

怎么生成呢,小编目前知道的方式有两种方式,教大家一个简单快捷的。

 

 BUILD SUCCESS ok了

生成mapper类中添加注解 @Repository 

 

添加模糊查询方法

编写SQL

  1. <select id="query" resultType="com.zking.spboot.model.Book">
  2. select <include refid="Base_Column_List"/> from t_book where 1=1
  3. <if test="null!=bookname and ''!=bookname">
  4. and bookname like concat('%',#{bookname},'%')
  5. </if>
  6. </select>

 编写service 

记得将Mapper层的@Repository 注解删掉,service不用注解

编写实现类

 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

 添加注解@Service

创建controller类

 controller层代码提供

  1. package com.zking.spboot.controller;
  2. import com.zking.spboot.model.Book;
  3. import com.zking.spboot.service.BookService;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import java.util.List;
  11. /**
  12. * @author 小坤
  13. * @create 2022-11-18-19:19
  14. */
  15. @RestController
  16. @RequestMapping("/book")
  17. public class BookController {
  18. @Autowired
  19. private BookService bookService;
  20. @RequestMapping("/query")
  21. public JsonResponseBody<?> query(Book book){
  22. List<Book> books=bookService.query(book);
  23. return new JsonResponseBody<>(200,"ok",books);
  24. }
  25. @RequestMapping("/add")
  26. public JsonResponseBody<?> add(Book book){
  27. bookService.insert(book);
  28. return new JsonResponseBody<>();
  29. }
  30. @Data
  31. @AllArgsConstructor
  32. @NoArgsConstructor
  33. class JsonResponseBody<T>{
  34. private int code=200;
  35. private String msg="ok";
  36. private T data;
  37. }
  38. }

运行测试一波

五、前端编码

先把这边编写好

action.js

 ​​​​​​​

index.js 

 

 编写页面,BookList.vue

最终效果,想要展示成这样,我们拜读element ui 官网,找到自己需要的样式拷贝下来,改巴改巴

 表单form,搜索栏

 数据表格 table  随便找一个,小编就用第一个最丑的基础表格

 对话框 自定义内容

表单校验

 ​​​​​​​

 六、前后台代码提供

后台:

application.yml

  1. server:
  2. port: 8080
  3. servlet:
  4. context-path: /spboot
  5. spring:
  6. datasource:
  7. type: com.alibaba.druid.pool.DruidDataSource
  8. driver-class-name: com.mysql.jdbc.Driver
  9. url: jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=utf8&useSSL=false
  10. username: root
  11. password: 123456
  12. druid:
  13. initial-size: 5
  14. min-idle: 5
  15. max-active: 20
  16. max-wait: 60000
  17. time-between-eviction-runs-millis: 60000
  18. min-evictable-idle-time-millis: 30000
  19. validation-query: SELECT 1 FROM DUAL
  20. test-while-idle: true
  21. test-on-borrow: true
  22. test-on-return: false
  23. pool-prepared-statements: true
  24. max-pool-prepared-statement-per-connection-size: 20
  25. filter:
  26. stat:
  27. merge-sql: true
  28. slow-sql-millis: 5000
  29. web-stat-filter:
  30. enabled: true
  31. url-pattern: /*
  32. exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
  33. session-stat-enable: true
  34. session-stat-max-count: 100
  35. stat-view-servlet:
  36. enabled: true
  37. url-pattern: /druid/*
  38. reset-enable: true
  39. login-username: admin
  40. login-password: admin
  41. allow: 127.0.0.1
  42. #deny: 192.168.1.100
  43. freemarker:
  44. cache: false
  45. charset: UTF-8
  46. content-type: text/html
  47. suffix: .ftl
  48. template-loader-path: classpath:/templates
  49. mybatis:
  50. mapper-locations: classpath:mapper/*.xml
  51. type-aliases-package: com.zking.spboot.model
  52. configuration:
  53. map-underscore-to-camel-case: true
  54. logging:
  55. level:
  56. com.zking.spboot.mapper: debug
  57. pagehelper:
  58. helperDialect: mysql
  59. reasonable: true
  60. supportMethodsArguments: true
  61. params: count=countSql

jdbc.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=UTF-8
  3. jdbc.username=root
  4. jdbc.password=123456

generatorConfig.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
  4. <generatorConfiguration>
  5. <!-- 引入配置文件 -->
  6. <properties resource="jdbc.properties"/>
  7. <!--指定数据库jdbc驱动jar包的位置-->
  8. <classPathEntry location="E:\SoftwareInstallPath\Maven\apache-maven-3.5.0-bin\apache-maven-3.5.0-bin\mvn_repository\mysql\mysql-connector-java\5.1.44\"/>
  9. <!-- 一个数据库一个context -->
  10. <context id="infoGuardian">
  11. <!-- 注释 -->
  12. <commentGenerator>
  13. <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
  14. <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
  15. </commentGenerator>
  16. <!-- jdbc连接 -->
  17. <jdbcConnection driverClass="${jdbc.driver}"
  18. connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
  19. <!-- 类型转换 -->
  20. <javaTypeResolver>
  21. <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
  22. <property name="forceBigDecimals" value="false"/>
  23. </javaTypeResolver>
  24. <!-- 01 指定javaBean生成的位置 -->
  25. <!-- targetPackage:指定生成的model生成所在的包名 -->
  26. <!-- targetProject:指定在该项目下所在的路径 -->
  27. <javaModelGenerator targetPackage="com.zking.spboot.model"
  28. targetProject="src/main/java">
  29. <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
  30. <property name="enableSubPackages" value="false"/>
  31. <!-- 是否对model添加构造函数 -->
  32. <property name="constructorBased" value="true"/>
  33. <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
  34. <property name="trimStrings" value="false"/>
  35. <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
  36. <property name="immutable" value="false"/>
  37. </javaModelGenerator>
  38. <!-- 02 指定sql映射文件生成的位置 -->
  39. <sqlMapGenerator targetPackage="com.zking.spboot.mapper"
  40. targetProject="src/main/resources">
  41. <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
  42. <property name="enableSubPackages" value="false"/>
  43. </sqlMapGenerator>
  44. <!-- 03 生成XxxMapper接口 -->
  45. <!-- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 -->
  46. <!-- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 -->
  47. <!-- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 -->
  48. <javaClientGenerator targetPackage="com.zking.spboot.mapper"
  49. targetProject="src/main/java" type="XMLMAPPER">
  50. <!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
  51. <property name="enableSubPackages" value="false"/>
  52. </javaClientGenerator>
  53. <!-- 配置表信息 -->
  54. <!-- schema即为数据库名 -->
  55. <!-- tableName为对应的数据库表 -->
  56. <!-- domainObjectName是要生成的实体类 -->
  57. <!-- enable*ByExample是否生成 example类 -->
  58. <!--<table schema="" tableName="t_book" domainObjectName="Book"-->
  59. <!--enableCountByExample="false" enableDeleteByExample="false"-->
  60. <!--enableSelectByExample="false" enableUpdateByExample="false">-->
  61. <!--&lt;!&ndash; 忽略列,不生成bean 字段 &ndash;&gt;-->
  62. <!--&lt;!&ndash; <ignoreColumn column="FRED" /> &ndash;&gt;-->
  63. <!--&lt;!&ndash; 指定列的java数据类型 &ndash;&gt;-->
  64. <!--&lt;!&ndash; <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> &ndash;&gt;-->
  65. <!--</table>-->
  66. <table schema="" tableName="t_book" domainObjectName="Book"
  67. enableCountByExample="false" enableDeleteByExample="false"
  68. enableSelectByExample="false" enableUpdateByExample="false">
  69. <!-- 忽略列,不生成bean 字段 -->
  70. <!-- <ignoreColumn column="FRED" /> -->
  71. <!-- 指定列的java数据类型 -->
  72. <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> -->
  73. </table>
  74. </context>
  75. </generatorConfiguration>

BookMapper

  1. package com.zking.spboot.mapper;
  2. import com.zking.spboot.model.Book;
  3. import org.springframework.stereotype.Repository;
  4. import java.util.List;
  5. @Repository
  6. public interface BookMapper {
  7. int deleteByPrimaryKey(Integer id);
  8. /**
  9. * 根据书本名称模糊查询书本信息
  10. * @param book
  11. * @return
  12. */
  13. List<Book> query(Book book);
  14. /**
  15. * 新增书本
  16. * @param record
  17. * @return
  18. */
  19. int insert(Book record);
  20. int insertSelective(Book record);
  21. Book selectByPrimaryKey(Integer id);
  22. int updateByPrimaryKeySelective(Book record);
  23. int updateByPrimaryKey(Book record);
  24. }

BookMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.zking.spboot.mapper.BookMapper" >
  4. <resultMap id="BaseResultMap" type="com.zking.spboot.model.Book" >
  5. <constructor >
  6. <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
  7. <arg column="bookname" jdbcType="VARCHAR" javaType="java.lang.String" />
  8. <arg column="price" jdbcType="REAL" javaType="java.lang.Float" />
  9. <arg column="booktype" jdbcType="VARCHAR" javaType="java.lang.String" />
  10. </constructor>
  11. </resultMap>
  12. <sql id="Base_Column_List" >
  13. id, bookname, price, booktype
  14. </sql>
  15. <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
  16. select
  17. <include refid="Base_Column_List" />
  18. from t_book
  19. where id = #{id,jdbcType=INTEGER}
  20. </select>
  21. <select id="query" resultType="com.zking.spboot.model.Book">
  22. select <include refid="Base_Column_List"/> from t_book where 1=1
  23. <if test="null!=bookname and ''!=bookname">
  24. and bookname like concat('%',#{bookname},'%')
  25. </if>
  26. </select>
  27. <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
  28. delete from t_book
  29. where id = #{id,jdbcType=INTEGER}
  30. </delete>
  31. <insert id="insert" parameterType="com.zking.spboot.model.Book" >
  32. insert into t_book (bookname, price,
  33. booktype)
  34. values (#{bookname,jdbcType=VARCHAR}, #{price,jdbcType=REAL},
  35. #{booktype,jdbcType=VARCHAR})
  36. </insert>
  37. <insert id="insertSelective" parameterType="com.zking.spboot.model.Book" >
  38. insert into t_book
  39. <trim prefix="(" suffix=")" suffixOverrides="," >
  40. <if test="id != null" >
  41. id,
  42. </if>
  43. <if test="bookname != null" >
  44. bookname,
  45. </if>
  46. <if test="price != null" >
  47. price,
  48. </if>
  49. <if test="booktype != null" >
  50. booktype,
  51. </if>
  52. </trim>
  53. <trim prefix="values (" suffix=")" suffixOverrides="," >
  54. <if test="id != null" >
  55. #{id,jdbcType=INTEGER},
  56. </if>
  57. <if test="bookname != null" >
  58. #{bookname,jdbcType=VARCHAR},
  59. </if>
  60. <if test="price != null" >
  61. #{price,jdbcType=REAL},
  62. </if>
  63. <if test="booktype != null" >
  64. #{booktype,jdbcType=VARCHAR},
  65. </if>
  66. </trim>
  67. </insert>
  68. <update id="updateByPrimaryKeySelective" parameterType="com.zking.spboot.model.Book" >
  69. update t_book
  70. <set >
  71. <if test="bookname != null" >
  72. bookname = #{bookname,jdbcType=VARCHAR},
  73. </if>
  74. <if test="price != null" >
  75. price = #{price,jdbcType=REAL},
  76. </if>
  77. <if test="booktype != null" >
  78. booktype = #{booktype,jdbcType=VARCHAR},
  79. </if>
  80. </set>
  81. where id = #{id,jdbcType=INTEGER}
  82. </update>
  83. <update id="updateByPrimaryKey" parameterType="com.zking.spboot.model.Book" >
  84. update t_book
  85. set bookname = #{bookname,jdbcType=VARCHAR},
  86. price = #{price,jdbcType=REAL},
  87. booktype = #{booktype,jdbcType=VARCHAR}
  88. where id = #{id,jdbcType=INTEGER}
  89. </update>
  90. </mapper>

BookService

  1. package com.zking.spboot.service;
  2. import com.zking.spboot.model.Book;
  3. import org.springframework.stereotype.Repository;
  4. import java.util.List;
  5. public interface BookService {
  6. /**
  7. * 根据书本名称模糊查询书本信息
  8. * @param book
  9. * @return
  10. */
  11. List<Book> query(Book book);
  12. /**
  13. * 新增书本
  14. * @param record
  15. * @return
  16. */
  17. int insert(Book record);
  18. }

BookServiceImpl

  1. package com.zking.spboot.service.Impl;
  2. import com.zking.spboot.mapper.BookMapper;
  3. import com.zking.spboot.model.Book;
  4. import com.zking.spboot.service.BookService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.util.List;
  8. /**
  9. * @author 小坤
  10. * @create 2022-11-18-19:15
  11. */
  12. @Service
  13. public class BookServiceImpl implements BookService {
  14. @Autowired
  15. private BookMapper bookMapper;
  16. @Override
  17. public List<Book> query(Book book) {
  18. return bookMapper.query(book);
  19. }
  20. @Override
  21. public int insert(Book record) {
  22. return bookMapper.insert(record);
  23. }
  24. }

BookController

  1. package com.zking.spboot.controller;
  2. import com.zking.spboot.model.Book;
  3. import com.zking.spboot.service.BookService;
  4. import lombok.AllArgsConstructor;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import java.util.List;
  11. /**
  12. * @author 小坤
  13. * @create 2022-11-18-19:19
  14. */
  15. @RestController
  16. @RequestMapping("/book")
  17. public class BookController {
  18. @Autowired
  19. private BookService bookService;
  20. @RequestMapping("/query")
  21. public JsonResponseBody<?> query(Book book){
  22. List<Book> books=bookService.query(book);
  23. return new JsonResponseBody<>(200,"ok",books);
  24. }
  25. @RequestMapping("/add")
  26. public JsonResponseBody<?> add(Book book){
  27. bookService.insert(book);
  28. return new JsonResponseBody<>();
  29. }
  30. @Data
  31. @AllArgsConstructor
  32. @NoArgsConstructor
  33. class JsonResponseBody<T>{
  34. private int code=200;
  35. private String msg="ok";
  36. private T data;
  37. }
  38. }

前台:

action.js

  1. /**
  2. * 对后台请求的地址的封装,URL格式如下:
  3. * 模块名_实体名_操作
  4. */
  5. export default {
  6. //服务器
  7. 'SERVER': 'http://localhost:8080/spboot',
  8. 'ALL':'/book/query',
  9. 'Add':'/book/add',
  10. //获得请求的完整地址,用于mockjs测试时使用
  11. 'getFullPath': k => {
  12. return this.SERVER + this[k];
  13. }
  14. }

router-index.js

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import BookList from '@/views/BookList'
  4. Vue.use(Router)
  5. export default new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'BookList',
  10. component: BookList
  11. }
  12. ]
  13. })

BookList.vue

  1. <template>
  2. <div>
  3. <h1 align="center">SpringBoot阶段机试,ts={{ts}}</h1>
  4. <!-- 1、搜索栏 -->
  5. <el-form :inline="true">
  6. <el-form-item label="书籍名称">
  7. <el-input v-model="bookname" placeholder="书籍名称"></el-input>
  8. </el-form-item>
  9. <el-form-item>
  10. <el-button type="primary" @click="query">查询</el-button>
  11. <el-button type="primary" @click="open">新增</el-button>
  12. </el-form-item>
  13. </el-form>
  14. <!-- 2、数据表格 -->
  15. <el-table :data="tableData" style="width: 100%;">
  16. <el-table-column prop="id" label="编号" >
  17. </el-table-column>
  18. <el-table-column prop="bookname" label="书籍名称" >
  19. </el-table-column>
  20. <el-table-column prop="price" label="书籍价格" >
  21. </el-table-column>
  22. <el-table-column prop="booktype" label="书籍类别" >
  23. </el-table-column>
  24. </el-table>
  25. <!-- 3、弹出框(新增) -->
  26. <el-dialog @close="close" title="书籍新增" :visible.sync="dialogFormVisible">
  27. <el-form :model="book" :rules="rules" ref="book">
  28. <el-form-item prop="bookname" label="书籍名称" :label-width="formLabelWidth">
  29. <el-input v-model="book.bookname" autocomplete="off"></el-input>
  30. </el-form-item>
  31. <el-form-item prop="price" label="书籍价格" :label-width="formLabelWidth">
  32. <el-input v-model="book.price" autocomplete="off"></el-input>
  33. </el-form-item>
  34. <el-form-item prop="booktype" label="书籍类型" :label-width="formLabelWidth">
  35. <el-select style="width: 100%;" v-model="book.booktype" placeholder="请选择书籍类型">
  36. <el-option label="玄幻" value="玄幻"></el-option>
  37. <el-option label="散文" value="散文"></el-option>
  38. </el-select>
  39. </el-form-item>
  40. </el-form>
  41. <div slot="footer" class="dialog-footer">
  42. <el-button @click="dialogFormVisible = false">取 消</el-button>
  43. <el-button type="primary" @click="save()">确 定</el-button>
  44. </div>
  45. </el-dialog>
  46. </div>
  47. </template>
  48. <script>
  49. export default {
  50. data: function() {
  51. return {
  52. ts: new Date().getTime(),
  53. bookname: '',
  54. tableData: [],
  55. dialogFormVisible: false,
  56. formLabelWidth: '100px',
  57. book: {
  58. bookname: '',
  59. price: '',
  60. booktype: ''
  61. },
  62. rules: {
  63. bookname: [{
  64. required: true,
  65. message: '请输入书籍名称',
  66. trigger: 'blur'
  67. }
  68. ],
  69. price: [{
  70. required: true,
  71. message: '请输入书籍价格',
  72. trigger: 'blur'
  73. }
  74. ],
  75. booktype: [{
  76. required: true,
  77. message: '请选择书籍类型',
  78. trigger: 'change'
  79. }
  80. ],
  81. }
  82. };
  83. },
  84. methods: {
  85. close: function() {
  86. this.$refs['book'].resetFields();
  87. },
  88. save: function() {
  89. this.$refs['book'].validate((valid) => {
  90. if (valid) {
  91. //参数
  92. let url = this.axios.urls.Add;
  93. this.axios.post(url, this.book).then(resp => {
  94. let rs = resp.data;
  95. if (rs.code == 200) {
  96. //关闭对话框
  97. this.dialogFormVisible = false;
  98. //刷新列表
  99. this.query();
  100. } else {
  101. }
  102. }).catch(err => {
  103. });
  104. } else {
  105. console.log('error submit!!');
  106. return false;
  107. }
  108. });
  109. },
  110. open: function() {
  111. this.dialogFormVisible = true;
  112. },
  113. query: function() {
  114. //1、查询参数
  115. let params = {
  116. bookname:this.bookname
  117. }
  118. //2、请求路径
  119. let url = this.axios.urls.ALL;
  120. //3、发起请求
  121. this.axios.post(url, params).then(resp => {
  122. let rs = resp.data;
  123. console.log(rs);
  124. this.tableData = rs.data;
  125. }).catch(err => {
  126. });
  127. }
  128. }
  129. }
  130. </script>
  131. <style>
  132. </style>

有小伙伴私信小编说:“在前端数据无法展示,后台查询增加生效了,数据库增加成功,但前端数据不展示。” 这里考虑前端的跨域问题

​​​​​​​

这个问题只需要在controller层添加一行注解就可以解决了

 

 

 

动手去玩一玩吧~拜拜

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/374358
推荐阅读
相关标签
  

闽ICP备14008679号