目录
1.2 application.yml文件与jdbc.properties文件 对应数据库的账号密码
前言:本期是从导入MAVEN项目后准备自动生成开始编写的
后端的配置以及生成代码加编写模糊查询方法
前端的界面搭建和事件以及获取后台的接口

- server:
- port: 8080
- servlet:
- context-path: /spboot
- spring:
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=utf8&useSSL=false
- username: root
- password: 123456
- druid:
- initial-size: 5
- min-idle: 5
- max-active: 20
- max-wait: 60000
- time-between-eviction-runs-millis: 60000
- min-evictable-idle-time-millis: 30000
- validation-query: SELECT 1 FROM DUAL
- test-while-idle: true
- test-on-borrow: true
- test-on-return: false
- pool-prepared-statements: true
- max-pool-prepared-statement-per-connection-size: 20
- filter:
- stat:
- merge-sql: true
- slow-sql-millis: 5000
- web-stat-filter:
- enabled: true
- url-pattern: /*
- exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
- session-stat-enable: true
- session-stat-max-count: 100
- stat-view-servlet:
- enabled: true
- url-pattern: /druid/*
- reset-enable: true
- login-username: admin
- login-password: admin
- allow: 127.0.0.1
- #deny: 192.168.1.100
- freemarker:
- cache: false
- charset: UTF-8
- content-type: text/html
- suffix: .ftl
- template-loader-path: classpath:/templates
- mybatis:
- mapper-locations: classpath:mapper/*.xml
- type-aliases-package: com.zking.spboot.model
- configuration:
- map-underscore-to-camel-case: true
- logging:
- level:
- com.zking.spboot.mapper: debug
- pagehelper:
- helperDialect: mysql
- reasonable: true
- supportMethodsArguments: true
- params: count=countSql
-
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=UTF-8
- jdbc.username=root
- jdbc.password=123456
- "1.0" encoding="UTF-8" ?>
- DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
- "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
- <generatorConfiguration>
-
- <properties resource="jdbc.properties"/>
-
-
- <classPathEntry location="F:\cangku\mvn_repository\mysql\mysql-connector-java\5.1.24\mysql-connector-java-5.1.24.jar"/>
-
-
- <context id="infoGuardian">
-
- <commentGenerator>
- <property name="suppressAllComments" value="true"/>
- <property name="suppressDate" value="true"/>
- commentGenerator>
-
-
- <jdbcConnection driverClass="${jdbc.driver}"
- connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
-
-
- <javaTypeResolver>
-
- <property name="forceBigDecimals" value="false"/>
- javaTypeResolver>
-
-
-
-
- <javaModelGenerator targetPackage="com.zking.spboot.model"
- targetProject="src/main/java">
-
- <property name="enableSubPackages" value="false"/>
-
- <property name="constructorBased" value="true"/>
-
- <property name="trimStrings" value="false"/>
-
- <property name="immutable" value="false"/>
- javaModelGenerator>
-
-
- <sqlMapGenerator targetPackage="com.zking.spboot.mapper"
- targetProject="src/main/resources">
-
- <property name="enableSubPackages" value="false"/>
- sqlMapGenerator>
-
-
-
-
-
- <javaClientGenerator targetPackage="com.zking.spboot.mapper"
- targetProject="src/main/java" type="XMLMAPPER">
-
- <property name="enableSubPackages" value="false"/>
- javaClientGenerator>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <table schema="" tableName="t_book" domainObjectName="Book"
- enableCountByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" enableUpdateByExample="false">
- table>
-
- context>
- generatorConfiguration>
- "1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0modelVersion>
- <parent>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-parentartifactId>
- <version>2.3.1.RELEASEversion>
- <relativePath/>
- parent>
- <groupId>com.zkinggroupId>
- <artifactId>spbootartifactId>
- <version>0.0.1-SNAPSHOTversion>
- <name>spbootname>
- <description>Demo project for Spring Bootdescription>
-
- <properties>
- <java.version>1.8java.version>
- <mysql.version>5.1.44mysql.version>
- properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-aopartifactId>
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-jdbcartifactId>
- dependency>
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-webartifactId>
- dependency>
- <dependency>
- <groupId>org.mybatis.spring.bootgroupId>
- <artifactId>mybatis-spring-boot-starterartifactId>
- <version>1.3.2version>
- dependency>
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>${mysql.version}version>
- <scope>runtimescope>
- dependency>
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- dependency>
-
-
- <dependency>
- <groupId>com.alibabagroupId>
- <artifactId>druid-spring-boot-starterartifactId>
- <version>1.1.10version>
- dependency>
-
-
- <dependency>
- <groupId>com.github.pagehelpergroupId>
- <artifactId>pagehelper-spring-boot-starterartifactId>
- <version>1.2.3version>
- dependency>
-
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-freemarkerartifactId>
- dependency>
-
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-testartifactId>
- <scope>testscope>
- <exclusions>
- <exclusion>
- <groupId>org.junit.vintagegroupId>
- <artifactId>junit-vintage-engineartifactId>
- exclusion>
- exclusions>
- dependency>
- dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-maven-pluginartifactId>
- plugin>
- <plugin>
- <groupId>org.mybatis.generatorgroupId>
- <artifactId>mybatis-generator-maven-pluginartifactId>
- <version>1.3.2version>
- <dependencies>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>${mysql.version}version>
- dependency>
- dependencies>
- <configuration>
- <overwrite>trueoverwrite>
- configuration>
- plugin>
- plugins>
- build>
-
- project>

- <select id="query" resultMap="BaseResultMap" parameterType="com.zking.spboot.model.Book" >
- select
- <include refid="Base_Column_List" />
- from t_book where 1=1
- <if test="null!=bookname and ''!=bookname">
- and bookname like CONCAT('%',#{bookname},'%')
- if>
- select>
- package com.zking.spboot.mapper;
-
- import com.zking.spboot.model.Book;
- import org.springframework.stereotype.Repository;
-
- import java.util.List;
-
- @Repository
- public interface BookMapper {
-
- List
query(Book book); -
- int deleteByPrimaryKey(Integer id);
-
- int insert(Book record);
-
- int insertSelective(Book record);
-
- Book selectByPrimaryKey(Integer id);
-
- int updateByPrimaryKeySelective(Book record);
-
- int updateByPrimaryKey(Book record);
- }
- package com.zking.spboot.service;
-
- import com.zking.spboot.model.Book;
-
- import java.util.List;
-
- /**
- * @author ljj
- * @site www.xiaomage.com
- * @company
- * @create 2022-11-21 14:16
- */
- public interface IBookService {
- List
query(Book book); -
-
- int insert(Book record);
-
- }
- package com.zking.spboot.service;
-
- import com.zking.spboot.mapper.BookMapper;
- import com.zking.spboot.model.Book;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import java.util.List;
-
- /**
- * @author ljj
- * @site www.xiaomage.com
- * @company
- * @create 2022-11-21 14:16
- */
- @Service
- public class BookServiceImpl implements IBookService {
-
- @Autowired
- private BookMapper bookMapper;
-
- @Override
- public List
query(Book book) { - return bookMapper.query(book);
- }
-
- @Override
- public int insert(Book record) {
- return bookMapper.insert(record);
- }
- }
- package com.zking.spboot.controller;
-
- import com.zking.spboot.model.Book;
- import com.zking.spboot.service.IBookService;
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.util.List;
-
- /**
- * @author ljj
- * @site www.xiaomage.com
- * @company
- * @create 2022-11-21 14:18
- */
- @RestController
- @RequestMapping("/book")
- public class BookController {
-
- @Autowired
- private IBookService bookService;
-
- @RequestMapping("/query")
- public JsonResponseBody> query(Book book){
- List
books = bookService.query(book); - return new JsonResponseBody<>(200,"OK",books);
- }
-
- @RequestMapping("/add")
- public JsonResponseBody> add(Book book){
- bookService.insert(book);
- return new JsonResponseBody<>();
- }
-
-
- @AllArgsConstructor
- @NoArgsConstructor
- @Data
- class JsonResponseBody
{ - private int code=200;
- private String msg;
- private T data;
- }
-
- }
- /**
- * 对后台请求的地址的封装,URL格式如下:
- * 模块名_实体名_操作
- */
- export default {
- //服务器
- 'SERVER': 'http://localhost:8080/spboot',
- 'ALL':'/book/query',
- 'ADD':'/book/add',
- //获得请求的完整地址,用于mockjs测试时使用
- 'getFullPath': k => {
- return this.SERVER + this[k];
- }
- }
- <template>
- <div>
- <h1 align="center">SpringBoot阶段机试,ts={{ts}}h1>
-
- <el-form :inline="true">
- <el-form-item label="书籍名称">
- <el-input v-model="bookname">el-input>
- el-form-item>
- <el-form-item>
- <el-button type="primary" @click="query">查询el-button>
- <el-button type="primary" @click="open">添加书本el-button>
- el-form-item>
- el-form>
-
- <el-table :data="tableData" style="width: 100%">
- <el-table-column prop="id" label="书籍编号" width="180">
- el-table-column>
- <el-table-column prop="bookname" label="书籍名称" width="180">
- el-table-column>
- <el-table-column prop="price" label="书籍价格" width="180">
- el-table-column>
- <el-table-column prop="booktype" label="书籍类型">
- el-table-column>
- el-table>
-
- <el-dialog @close="close()" title="新增书籍" :visible.sync="dialogFormVisible">
- <el-form :rules="rules" ref="book" :model="book">
- <el-form-item prop="bookname" label="书本名称" :label-width="formLabelWidth">
- <el-input v-model="book.bookname" autocomplete="off">el-input>
- el-form-item>
- <el-form-item prop="price" label="书本价格" :label-width="formLabelWidth">
- <el-input v-model="book.price" autocomplete="off">el-input>
- el-form-item>
- <el-form-item prop="booktype" label="活动区域" :label-width="formLabelWidth">
- <el-select style="width: 100%;" v-model="book.booktype" placeholder="请选择书籍类型">
- <el-option label="修仙" value="修仙">el-option>
- <el-option label="武侠" value="武侠">el-option>
- el-select>
- el-form-item>
- el-form>
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogFormVisible = false">取 消el-button>
- <el-button type="primary" @click="save">确 定el-button>
- div>
- el-dialog>
- div>
- template>
-
- <script>
- export default {
- data: function() {
- return {
- ts: new Date().getTime(),
- bookname: '',
- tableData: [],
- dialogFormVisible: false,
- formLabelWidth: '100px',
- book: {
- bookname: '',
- price: '',
- booktype: ''
- },
- rules: {
- bookname: [{
- required: true,
- message: '请输入书籍名称',
- trigger: 'blur'
- }, ],
- price: [{
- required: true,
- message: '请输入书籍价格',
- trigger: 'blur'
- }, ],
- booktype: [{
- required: true,
- message: '请选择书籍类型',
- trigger: 'change'
- }, ],
- }
- };
- },
- methods: {
- close: function() {
- alert(111);
- this.$refs['book'].resetFields();
- },
- save: function() {
- this.$refs['book'].validate((valid) => {
- if (valid) {
- // 请求路径
- let url = this.axios.urls.ADD;
- // 发送请求
- this.axios.post(url, this.book).then(resp => {
- let rs = resp.data;
- if (rs.code == 200) {
- this.dialogFormVisible = false;
- this.query();
- }else{
-
- }
- }).catch(err => {
-
- });
- } else {
- console.log('error submit!!');
- return false;
- }
- });
- },
- open: function() {
- this.dialogFormVisible = true;
- },
- query: function() {
- // 查询参数
- let params = {
- bookname: this.bookname
- }
- // 请求路径
- let url = this.axios.urls.ALL;
- // 发起请求
- this.axios.post(url, params).then(resp => {
- let rs = resp.data;
- console.log(rs);
- this.tableData = rs.data;
- }).catch(err => {
-
- });
- }
- }
- }
- script>
-
- <style>
- style>

