mybatis-generator使用

##第一步:创建SpringBoot项目,选择web,mysql和mybatis



##第二步:在创建好的项目POM.xml文件中,增加generator插件,此时POM.xml文件如下

<?xml version="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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.18.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <!--Mybatis-generator插件-->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <!--generator配置文件的位置-->
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
            </configuration>
            <executions>
                <execution>
                    <id>Generate MyBatis Artifacts</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-core</artifactId>
                    <version>1.3.7</version>
                </dependency>
            </dependencies>
        </plugin>

    </plugins>
</build>

</project>

##第三步:新建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工作的时候,需要额外加载的依赖包 location属性指明加载jar包的全路径,具体版本根据自己仓库选择-->
<classPathEntry    location="C:\Users\Young\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
<context id="DB2Tables"    targetRuntime="MyBatis3">
    <commentGenerator>
        <property name="suppressDate" value="true"/>
        <property name="suppressAllComments" value="true"/>
    </commentGenerator>
    <!--数据库链接地址账号密码-->
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/project"
                    userId="root"
                    password="root">
    </jdbcConnection>

    <javaTypeResolver>
        <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>
    <!--生成Model类存放位置,如果targetPackage不存在,会自动建立-->
    <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
        <property name="enableSubPackages" value="true"/>
        <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    <!--生成映射文件存放位置-->
    <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
        <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>
    <!--生成Dao类存放位置-->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="src/main/java">
        <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>
    <!--对应的数据库表及model中生成的类名-->
    <table tableName="dwg_table" domainObjectName="DwgTable" enableCountByExample="false" enableUpdateByExample="false"
           enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>

##此时工程目录结构:

##第四步:打开maven管理工具,刷新,然后双击mybatis-generator插件,即可自动生成代码

##控制台输出如下:
“D:\Program Files\Java\jdk1.8.0_191\bin\java.exe” -Dmaven.multiModuleProjectDirectory=E:\WorkSpace\smart-manage-system\demo “-Dmaven.home=D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\plugins\maven\lib\maven3” “-Dclassworlds.conf=D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\plugins\maven\lib\maven3\bin\m2.conf” “-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=57987:D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin” -Dfile.encoding=UTF-8 -classpath “D:\Program Files\JetBrains\IntelliJ IDEA 2018.3\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar” org.codehaus.classworlds.Launcher -Didea.version=2018.3.1 org.mybatis.generator:mybatis-generator-maven-plugin:1.3.7:generate
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building demo 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] — mybatis-generator-maven-plugin:1.3.7:generate (default-cli) @ demo —
[INFO] Connecting to the Database
Sun Dec 09 23:17:51 CST 2018 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[INFO] Introspecting table dwg_table
[INFO] Generating Record class for table dwg_table
[INFO] Generating Mapper Interface for table dwg_table
[INFO] Generating SQL Map for table dwg_table
[INFO] Saving file DwgTableMapper.xml
[INFO] Saving file DwgTable.java
[INFO] Saving file DwgTableMapper.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.592 s
[INFO] Finished at: 2018-12-09T23:17:51+08:00
[INFO] Final Memory: 23M/275M
[INFO] ------------------------------------------------------------------------

Process finished with exit code 0

##到此,利用mybatis-generator自动生成代码的工作已经完成。
##下面写个接口测试一下吧!
##第五步:IDEA中使用mybatis的mapper.xml和mapper接口时,最好是安装一个插件,这样接口就能自动跳到xml文件去了


##第六步:新建controller和service,并在mapper接口上增加@Mapper注解,model上增加@component注解,此时目录如下

##controller代码:
package com.example.demo.controller;

import com.example.demo.service.DwgTableService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DwgTableController {

    @Autowired
    DwgTableService dwgTableService;


    @PostMapping("/find/{id}")
    public Object findById(@PathVariable("id") Integer id){
        return dwgTableService.findById(id);
}

}

##service代码:
package com.example.demo.service;

import com.example.demo.dao.DwgTableMapper;
import com.example.demo.model.DwgTable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DwgTableService {

    @Autowired
    DwgTableMapper dwgTableMapper;

    public DwgTable findById(Integer id){

        return  dwgTableMapper.selectByPrimaryKey(id);
    }
}

##mapper代码:
package com.example.demo.dao;

import com.example.demo.model.DwgTable;
import org.apache.ibatis.annotations.Mapper;

//如果不加mapper注解,启动是会报错:could not be found
@Mapper
public interface DwgTableMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(DwgTable record);

    int insertSelective(DwgTable record);

    DwgTable selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(DwgTable record);

    int updateByPrimaryKey(DwgTable record);
}

##第七步:修改application.properties文件
#服务端口
server.port=8001

#数据源配置
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/project

#mapper地址
mybatis.mapper-locations=classpath:mapper/*.xml

#打印SQL
logging.level.cn.uzyong.st.drawingmanagesystem.dao: trace

##第八步:启动工程,并打开postman测试

##测试通过,整合mybatis,并使用mybatis-generator自动生成代码成功!

##参考文章:
[1].https://www.jianshu.com/p/e09d2370b796
[2].http://www.cnblogs.com/theWinter/p/9774118.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值