MyBatis自动生成Dao层

MyBatis自动生成Dao层

MyBatis自动生成Dao层,从数据库的表映射到Java的数据层。包括 Mapper接口的定义,Mapper文件中的sql脚本以及接口中用到的对象

参考地址:

http://mybatis.org/generator/running/runningWithMaven.html

http://mybatis.org/generator/configreference/xmlconfig.html

新建Maven项目(我的是基于SpringBoot)

1.配置pom.xml  主要添加build那一块

<?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 https://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>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.imodule.product</groupId>
    <artifactId>product</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>product</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <imodule-nexus.version>0.0.1-SNAPSHOT</imodule-nexus.version>
        <quartz.version>2.3.0</quartz.version>

    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <artifactId>jul-to-slf4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>log4j-to-slf4j</artifactId>
                    <groupId>org.apache.logging.log4j</groupId>
                </exclusion>
            </exclusions>
        </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.4.0</version>
                <configuration>
                    <!-- mybatis-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.4.0</version>
                    </dependency>
                </dependencies>

            </plugin>
        </plugins>
    </build>
</project>

  

2.生成dao的配置文件 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>

    <!--JDBC驱动jar包的位置-->
    <classPathEntry location="D:/app/maven/repository/mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar"/>

    <context id="default" targetRuntime="MyBatis3">

        <!--创建Java类时是否取消生成注释-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--JDBC数据库连接-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://10.22.33.86:4000/test1?characterEncoding=utf8"
                        userId="root"
                        password="111">
        </jdbcConnection>

        <!--
        Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
        targetPackage     指定生成的model生成所在的包名
        targetProject     指定在该项目下所在的路径
        -->
        <javaModelGenerator targetPackage="com.imodule.product.generated.pojo" targetProject="./src/main/java">
            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否对model添加构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>

        <!-- mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
        <sqlMapGenerator targetPackage="generator"
                         targetProject="./src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!--
        客户端代码,生成易于使用的针对Model对象和XML配置文件的代码
        type="ANNOTATEDMAPPER",生成Java Model和基于注解的Mapper对象
        type="MIXEDMAPPER",生成基于注解的Java Model和相应的Mapper对象
        type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
        -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.imodule.product.generated.mapper"
                             targetProject="./src/main/java">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!--tables-->
        <table tableName="PRD_BASE" domainObjectName="PrdBase"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>

        <table tableName="prd_property" domainObjectName="PrdProperty"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

 

生成步骤:

IDEA- 点击Maven - Plugins - 选中 Mybatis-generator 双击即可

控制台输出日志:

如果出现以下类似错误

[WARNING] Table configuration with catalog null, schema null, and table XXX did not resolve to any tables

请注意表明的大小写是否与数据库一致 ,我将表名改为大写就都欧克啦!!!

生成前的目录结构:

生成后的目录 (红色框框标记处均为自动生成的)

到这里就欧克啦,后期要使用的时候  maven 打包一下即可啦,然后在别的项目直接引用即可!

这里有个不好的点是所有的表要一一配置,我再康康有没有啥更快捷的办法,能对整个数据库自动生成的哈哈哈哈 找到了我再来更新~

原文地址:https://www.cnblogs.com/DFX339/p/12568360.html

时间: 2024-11-05 17:33:25

MyBatis自动生成Dao层的相关文章

mybatis自动生成dao, model, mapper xml文件

用mybatis的时候,手写xml或model文件是一个力气活,所以可以用mybatis-gennerator插件自动生成mybatis所需要的dao.bean.mapper xml文件 (原文地址:http://blog.csdn.net/tolcf/article/details/50835165) 附件下载地址:http://files.cnblogs.com/files/cc-robot/generator.rar 把附件解压到本地,我放在d:\web\java目录下了 只需要修改下面x

mybatis genertor自动生成Dao+mapping+model

mybatis genertor自动生成Dao+mapping+model   [1]下载: 可参考:https://github.com/mybatis/generator/releases 解压之后的格式: [2]添加文件 打开lib文件 (1)新建generatorConfig..xml文件,内容见下(仅作参考,部分内容需自己修改): <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE gener

Mybatis入门实例(三)——使用MyBatis Generator生成DAO(转载http://qiuqiu0034.iteye.com/blog/1163026)

接上回 http://qiuqiu0034.iteye.com/blog/1162952 虽然MyBatis很方便,但是想要手写全部的mapper还是很累人的,好在MyBatis官方推出了自动化工具,可以根据数据库和定义好的配置直接生成DAO层及以下的全部代码,非常方便. 需要注意的是,虽然自动化工具需要一个配置文件,但是MyBatis的配置文件仍然不能少,自动化工具的配置文件用于对生成的代码的选项进行配置,MyBatis的配置文件才是运行时的主要配置文件. 这个工具叫做MyBatis_Gene

Mybatis-Generator插件自动生成Dao、Model、Mapping相关文件

最近做项目,mapping 有点多而且容易写错,于是试着用了Mybatis-Generator 插件自动生成 dao, domain  mapping 文件.感觉还挺好用.把相关配置分享,一边以后做项目的时候直接拿来用.  我用的是eclipse Mybatis-Generator 插件. 环境:eclipse  Mars.2 插件:org.mybatis.generator.eclipse.site-1.3.5.201609070108 数据库jar:mysql-connector-java-

使用MyBatis-Gererator自动生成Dao.Model.Mapping相关文件

一.在MyEclipse中使用Maven项目下使用MyBatis-Gererator自动生成Dao.Model.Mapping相关文件 1.关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases 2.查找能够匹配maven的下载配置文件,将匹配的相关文件配置到maven项目下的pom.xml文件中 3.复制以下二中的generatorConfig.xml文件,到myEclipse中创建的maven项目

谨慎使用MyBatis自动生成Where语句

最近监控到类似这样一个慢查询: select delete_flag,delete_time from D_OrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') D_OrderInfo表上有一个OrderId的索引,但OrderId字段是Varchar类型.由于开发框架MyBatis自动生成Where条件不会指定参数类型,字符串类型的参数到了SQLServer里就自动成了NVARCHAR(4000)类型了,坑人的是,不指定参数类

使用函数自动生成n层目录

先检查是否已经存在该目录了,如果存在,则不做任何处理,如果不存在则创建. 希望对各位快速开发有用. CheckFolder.asp <% '*********************************************************************************************************** '作 者: 赵敏 [email protected] '页面名称: CreateFolder.asp '页面功能: 生成n层目录的文件夹 '使用

Mybatis 自动生成代码,数据库postgresql

最近做了一个项目,使用Mybatis自动生成代码,下面做一下总结,被以后参考: 一.提前准备: 1.工具类:mybatis-generator-core-1.3.2.jar 2.postgresql驱动:postgresql-9.2-1003-jdbc4.jar 3.xml文件 这些我都上传到了附件上,下载链接:Download 二.XML详解 咱们的核心配置文件:mybatisGeneratorConfig.xml <?xml version="1.0" encoding=&q

MyBatis Generator生成DAO——序列化

MyBatis Generator生成DAO 的时候,生成的类都是没有序列化的. 还以为要手工加入(開始是手工加入的),今天遇到分页的问题,才发现生成的时候能够加入插件. 既然分页能够有插件.序列化是不是也有呢. 果然SerializablePlugin,已经给我们提供好了. <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> 立即高端大气了起来.每一个model对象都乖乖的带上了Serial