由于团队需要,今天将IDEA重新安装了下,和团队统一,为2021版本,此版本创建项目下载速度很慢,下载过程中不要乱动防止有些文件下载失败导致创建项目出现问题,如果出现问题可以到仓库里找到对应的组件看看是否没完全下载,顺便可熟悉。

开始创建项目,选用了SpringBoot框架,其他没选,今天要实现的目标就是实现mybatis通过xml配置数据库 自动生成model、interfice(接口),然后完成接口实现和api

一、在Resource下创建 文件夹mybatis-generarot,然后就在此文件夹下创建xml文件 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>
<!-- 执行generator插件生成文件命令:call mvn mybatis-generator:generate -e-->
<!--引入配置文件-->
<!--<properties resource="mybatis-generator/mybatisGeneratorinit.properties"></properties>-->
<!-- classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选-->
 <classPathEntry location="D:\apache-maven-3.8.2\repository\com\microsoft\sqlserver\mssql-jdbc\9.2.1.jre8\mssql-jdbc-9.2.1.jre8.jar"/>
<!-- 一个数据库一个context-->
<!-- defaultModeType="flat"大数据字段,不分表-->
 <context id="SqlServerTables" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!--  自动识别数据库关键字,默认false,如果没有设置为true,根据SqlReserverdWords中定义的关键字列表;-->
<!--  一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖-->
  <property name="autoDelimitKeywords" value="true"/>
<!--  生成Java文件的编码-->
  <property name="javaFileEncoding" value="utf-8"/>
<!--  beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对名的符号,比如ORCAL就是-->
<!--  双引号,MYSQL默认`反引号`-->
<property name="beginningDelimiter" value="["/>
  <property name="endingDelimiter" value="]"/>

<!--  格式化Java代码-->
  <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!--  格式化XML代码-->
  <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
  <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>

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

<!--  注释-->
  <commentGenerator>
<!--   是否取消注释-->
   <property name="suppressAllComments" value="false"/>
<!--   是否生成注释代时间戳-->
   <property name="suppressDate" value="true"/>
  </commentGenerator>

<!--jdbc链接-->
  <jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
                  connectionURL="jdbc:sqlserver://192.168.1.128\sql2008r2;DatabaseName=GuHuai_Wgh"
                  userId="sa"
                  password="123"
  ></jdbcConnection>
<!--  类型转换-->
  <javaTypeResolver>
<!--   是否使用bigDecimal,false可自动转化以下类型(Long,Integer,Short,etc.)-->
   <property name="forceBigDecimals" value="false"/>
  </javaTypeResolver>

<!--     生成实体类地址-->
     <javaModelGenerator targetPackage="com.example.mybatis02.model" targetProject="src/main/java">
         <property name="enableSubPackages" value="false"/>
         <property name="trimStrings" value="true"/>
     </javaModelGenerator>
<!--  生成mapxml文件-->
  <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
   <property name="enableSubPackages" value="false"/>
  </sqlMapGenerator>

<!--  生成mapxml对应的client,也就是接口dao-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mybatis02.mapper" targetProject="src/main/java">
    <property name="enableSubPackages" value="fales"/>
</javaClientGenerator>

  <table tableName="User"
         enableCountByExample="true"
         enableUpdateByExample="true"
         enableDeleteByExample="true"
         enableSelectByExample="true"
         selectByExampleQueryId="true"
  >
   <property name="UserID" value="false"/>
<!--   数据库表主键-->
   <generatedKey column="UserID" sqlStatement="Sqlserver" identity="true"></generatedKey>
  </table>
 </context>
</generatorConfiguration>

如上代码不多说,我也是新手,照做就是,网上很多

二、添加pom引用,在pom中添加如下引用,且刷新下载

1、generator插件配置

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
   <version>1.3.2</version>
    <executions>
        <execution>
            <id>Generate MyBatis Artifacts</id>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- generator 工具配置文件的位置 -->
        <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
        <!--注意这个位置要和自己的路径一样-->
        <verbose>true</verbose>
        <overwrite>true</overwrite>
    </configuration>
</plugin>
2、数据库、generator核心库引入

<dependency>
<groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.2</version>
</dependency>
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.2</version>
</dependency>

三、找到右侧Maven项目下 Plugins下的 mybatis-generator双击执行,如果没有意外将会自动在对应包空间下生成mapper接口、model,且在resources下出现对应的mapper

四、在model同级创建server包,包下面对应类 implements实现mapper接口,光标放类名上,组合键alt+enter实现接口,然后手动不全,部分代码如下:

public class UserService implements UserMapper {
    @Autowired
   private UserMapper userMapper;

    @Override
    public int deleteByPrimaryKey(Integer userid) {
        return userMapper.deleteByPrimaryKey(userid);
    }

    @Override
    public int insert(User record) {
        return userMapper.insert(record);
    }

五、创建控制器包,创建控制器
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @ResponseBody
    @RequestMapping(value = "/delete",method = RequestMethod.DELETE)
    public int deleteByPrimaryKey(@RequestParam Integer userId) throws Exception  {
        return userService.deleteByPrimaryKey(userId);
    }
此处遇到个小插曲,由于我最初创建项目的时候并没有选择web项目,因此项目初始化自然没有
spring-boot-starter-web的依赖,从而导致在控制器上面写RequestMapping和RestController是出不来的,需要将鼠标放在@RestController组合键alt+enter可添加
spring-boot-starter-web依赖,会自动加到pom中 ,很方便。