快速开始

我们将通过一个简单的 Demo 来阐述 wueasy 的强大功能,在此之前,我们假设您已经:

  • 拥有 Java 开发环境以及相应 IDE
  • 熟悉 Spring Boot
  • 熟悉 Maven
  • 熟悉 MyBatis
  • 熟悉 MySql

现有一张 user 表,其表结构如下:

id name age email
1 wueasy 2 server@wueasy.com
2 fallsea 18 fallsea@wueasy.com

其对应的数据库 Schema 脚本如下:

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
)  AUTO_INCREMENT = 1 ;

其对应的数据库 Data 脚本如下:

DELETE FROM `user`;

INSERT INTO `user` VALUES (1, 'wueasy', 2, 'server@wueasy.com');
INSERT INTO `user` VALUES (2, 'fallsea', 18, 'fallsea@wueasy.com');

[!question] 如果从零开始用 wueasy 来实现该表的增删改查接口,我们需要做什么呢?

导入工程

[!TIP] 通过导入演示demo,快速搭建环境。

分别导入demo-datamodeldemo-busdemo-web

自动生成mybatis接口

[!TIP] 通过自动生成mybatisi接口文件,减少开发成功。

打开demo-datamodel项目工程

配置信息

打开文件src\test\resources\generatorConfig.xml

  • 修改数据库连接配置
  • 修改生成的映射信息
  • 修改需要生成的表
<?xml version="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>
    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <property name="javaFileEncoding" value="UTF-8"/>
        <property name="useMapperCommentGenerator" value="true"/>

        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<!--             <property name="beginningDelimiter" value="`"/> -->
<!--             <property name="endingDelimiter" value="`"/> -->
            <property name="caseSensitive" value="true"/>
            <property name="forceAnnotation" value="false"/>
            <property name="generateColumnConsts" value="false"/>
            <property name="generateDefaultInstanceMethod" value="false"/>
            <property name="lombok" value="Data"/>
        </plugin>

        <!--通用代码生成器插件-->
        <!--mapper接口-->
        <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
            <property name="targetProject" value="src/main/java"/>
            <property name="targetPackage" value="com.ruruan.demo.mapper"/>
            <property name="templatePath" value="generator/mapper.ftl"/>
            <property name="mapperSuffix" value="Mapper"/>
            <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.java"/>
        </plugin>
        <!--mapper.xml-->
        <plugin type="tk.mybatis.mapper.generator.TemplateFilePlugin">
            <property name="targetProject" value="src/main/resources"/>
            <property name="targetPackage" value="mybatis.ruruan.demo"/>
            <property name="mapperPackage" value="com.ruruan.demo.mapper"/>
            <property name="templatePath" value="generator/mapperXml-wueasy.ftl"/>
            <property name="mapperSuffix" value="Mapper"/>
            <property name="fileName" value="${tableClass.shortClassName}${mapperSuffix}.xml"/>
        </plugin>


        <!-- 数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="easyadmin"
                        password="easyadmin">
        </jdbcConnection>
<!--         <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" -->
<!--                         connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" -->
<!--                         userId="think_framework" -->
<!--                         password="think_framework"> -->
<!--             针对oracle数据库增加注释 -->
<!--             <property name="remarksReporting" value="true"></property> -->
<!--         </jdbcConnection> -->


        <javaTypeResolver type="com.wueasy.auto.resolver.MyJavaTypeResolverDefaultImpl"/>

        <!--模型配置-->
        <javaModelGenerator targetPackage="com.ruruan.demo.entity" targetProject="src/main/java">
             <property name="enableSubPackages" value="true"/>
        </javaModelGenerator>


        <!-- 表配置 -->
        <table tableName="demo">
            <generatedKey column="id" sqlStatement="JDBC"/>
        </table>
    </context>
</generatorConfiguration>

执行自动生成类

[!TIP] 通过执行自动生成类,生成对应的mapperentity

打开文件src\test\java\Generator.java

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;



public class Generator {


    public static InputStream getResourceAsStream(String path){
        return Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
    }

    public static void main(String[] args) throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(getResourceAsStream("generatorConfig.xml"));
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
        for (String warning : warnings) {
            System.out.println(warning);
        }
    }
}

执行完成后,将在对应的包中生成对应的文件。

接口配置

[!TIP] 接口配置是一种暴露服务接口的信息,配置后,其他服务可以调用此接口,也可以在配置中做一些接口验证处理。

打开demo-bus项目工程

查询分页

  • 配置一个查询分页的功能号:function
  • 指定功能号id:id="DEMO0001"
  • 设置功能号调用mapper接口type="m"
  • 指定功能号需要分页isPage="1"

  • 设置请求的接口地址resource,值为mapper接口路径+方法名称

  • 设置接口中文名称description
<function id="DEMO0001" type="m" isPage="1">
  <params>
        <param name="名称" id="name" operateType="Like"/>
    </params>
    <resource>com.ruruan.demo.mapper.DemoMapper.selectByExample</resource>
    <description>查询分页</description>
</function>

新增

  • 配置一个新增的功能号:function
  • 指定功能号id:id="DEMO0002"
  • 设置功能号调用mapper接口type="m"

  • 参数配置:param,一般只有参数验证的时候,才需要编写,也可以当作接口文档。

  • 姓名不能为空配置:<param id="name" name="姓名" required="1"/>
  • id为参数名,name为参数中午名称,required="1"不能为空

  • 设置请求的接口地址resource,值为mapper接口路径+方法名称

  • 设置接口中文名称description
<function id="DEMO0002" type="m">
  <params>
    <param id="name" name="名称" required="1" maxLength="50"/>
    <param id="createdTime" name="创建时间" value="$date()"/>
  </params>
  <resource>com.ruruan.demo.mapper.DemoMapper.insertSelective</resource>
  <description>新增</description>
</function>

修改

<function id="DEMO0003" type="m">
  <params>
    <param id="id" name="id" required="1"/>
    <param id="name" name="名称" required="1" maxLength="50"/>
    <param id="updatedTime" name="修改时间" value="$date()"/>
  </params>
  <checks><!-- 检查资源信息 -->
        <check isEmpty="1">
            <msg>记录不存在</msg>
            <resource>com.ruruan.demo.mapper.DemoMapper.selectByPrimaryKey</resource>
        </check>
    </checks>
  <resource>com.ruruan.demo.mapper.DemoMapper.updateByPrimaryKeySelective</resource>
  <description>修改</description>
</function>

查询单个数据

<function id="DEMO0004" type="m">
  <params>
    <param id="id" name="id" required="1"/>
  </params>
  <resource>com.ruruan.demo.mapper.DemoMapper.selectByPrimaryKey</resource>
  <description>查询单个记录</description>
</function>

删除

<function id="DEMO0005" type="m">
  <params>
    <param id="id" name="id" required="1"/>
  </params>
  <checks><!-- 检查资源信息 -->
        <check isEmpty="1">
            <msg>记录不存在</msg>
            <resource>com.ruruan.demo.mapper.DemoMapper.selectByPrimaryKey</resource>
        </check>
    </checks>
  <resource>com.ruruan.demo.mapper.DemoMapper.deleteByPrimaryKey</resource>
  <description>删除</description>
</function>

启动服务

执行Application.java类启动服务

启动业务服务bus

打开demo-bus项目工程

修改数据库配置

修改数据库连接配置。打开文件src\main\resources\application-dev.yml

wueasy : 
  data: 
    datasource : 
      demo : 
        isLog: true
        mybatis:
          basePackage: com.ruruan.demo.mapper
          mapperLocations: classpath*:mybatis/ruruan/demo/*.xml
        connection: 
          url : jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&&useSSL=false&useUnicode=true&characterEncoding=utf-8
          username : easyadmin
          password : easyadmin
          #连接池配置
          initialSize : 10  #初始化大小
          minIdle : 10  #最小连接
          maxActive : 20  #最大连接
          maxWait : 60000  #配置获取连接等待超时的时间
          timeBetweenEvictionRunsMillis : 2000  #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
          minEvictableIdleTimeMillis : 600000  #配置一个连接在池中最小生存的时间,单位是毫秒
          maxEvictableIdleTimeMillis : 600000  #配置一个连接在池中最大生存的时间,单位是毫秒
          validationQuery : SELECT 1 from dual 
          testWhileIdle : true
          testOnBorrow : false
          testOnReturn : false
          keepAlive : true

启动web服务

打开demo-web项目工程

请求测试

[!TIP] 系统默认提供调用功能号的Controller,可以直接使用。

Controller接口

默认为Controller接口:http://localhost:8080/servlet/功能号

只需要按照此方式调用即可

调用demo

  • 查询分页接口:http://localhost:8080/servlet/DEMO0001

  • 新增接口:http://localhost:8080/servlet/DEMO0002?name=测试&age=12&email=xxx@qq.com

  • 修改接口:http://localhost:8080/servlet/DEMO0003?name=%E6%B5%8B%E8%AF%9522&age=12&email=xxx@qq.com&id=3

  • 查询单个数据接口:http://localhost:8080/servlet/DEMO0004?id=3

  • 删除接口:http://localhost:8080/servlet/DEMO0005?id=3

Copyright © wueasy.com 2017-2021 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2021-05-23

results matching ""

    No results matching ""