keyfall / xuexibiji

3 stars 0 forks source link

IDEA+gradle+postgresql通过generator逆向生成 #43

Open keyfall opened 4 years ago

keyfall commented 4 years ago

首先创建一个项目

build.gradle

buildscript{
    repositories {
        mavenLocal()
        mavenCentral()
        maven{url "https://plugins.gradle.org/m2/"}
    }
    ext{

        springBootVersion = "2.1.3.RELEASE"
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
        classpath "gradle.plugin.com.arenagod.gradle:mybatis-generator-plugin:1.4"

    }

}

repositories {
    mavenLocal()
    mavenCentral()
    maven {

        url 'http://maven.aliyun.com/nexus/content/groups/public'
    }

}

    group 'org.example'
    version '1.0-SNAPSHOT'
    apply plugin: 'java'
    sourceCompatibility = 1.8
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'org.springframework.boot'
    //新增
    apply plugin: "com.arenagod.gradle.MybatisGenerator"

    dependencies {
        compile 'org.springframework.boot:spring-boot-starter-web'
        annotationProcessor 'org.projectlombok:lombok:1.18.2'
        compileOnly 'org.projectlombok:lombok:1.18.2'
        compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
        compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: '9.0.16'
        compile group: 'org.apache.shiro', name: 'shiro-spring-boot-web-starter', version: '1.5.3'
        compile group: 'org.apache.shiro', name: 'shiro-spring', version: '1.5.3'
        compile group: 'org.postgresql', name: 'postgresql', version: '42.2.6'

        compile group: 'org.springframework.boot', name: 'spring-boot-devtools', version: '2.1.1.RELEASE'
        compile group: 'org.springframework.boot', name: 'spring-boot-starter-cache', version: '2.1.1.RELEASE'
        compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.0.1'
        //新增
        compile group: 'org.mybatis.generator', name: 'mybatis-generator-core', version:'1.3.2'
        runtimeOnly 'mysql:mysql-connector-java'
        compile group: 'org.mybatis', name: 'mybatis', version: '3.4.5'

    }

configurations {
    mybatisGenerator
}

//新增内容
mybatisGenerator {
    verbose = true
    configFile = "C:\\Users\\Administrator\\IdeaProjects\\shiroSpringBoot\\src\\main\\resources\\mybatis\\generatorConfig.xml"
}

新建generatorConfig.xml 这里数据库驱动很重要,我因为这个花了半天时间 但是看教程的是mysql的,它这里驱动给注释了,我就直接复制教程的 后来显示jdbc驱动不存在,我就各种找方法: 1.在build.gradle中进行mysql-connector-java驱动添加 2.换postgresql版本 3.在jdbcConnection中换各种驱动 ...

后来乱找,看了postgresql里面在github的介绍,一开始还没看到,后来注意一个Driver,就进去下载了,然后放在项目文件夹下,使用绝对路径找到jar包

里面的文件夹根据自己配置

<?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>

    <!-- 数据库驱动 -->
    <classPathEntry location="C:\Users\Administrator\IdeaProjects\shiroSpringBoot\src\main\webapp\postgresql-42.2.6.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3Simple">

        <commentGenerator>
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="org.postgresql.Driver"

                        connectionURL="jdbc:postgresql://127.0.0.1:5432/sso"

                        userId="postgres"

                        password="zongming">

        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- 生成模型的包名和位置 -->
        <javaModelGenerator
                targetPackage="shirospringboot.model"
                targetProject="C:\Users\Administrator\IdeaProjects\shiroSpringBoot\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置 -->
        <sqlMapGenerator
                targetPackage="shirospringboot.sqlmap"
                targetProject="C:\Users\Administrator\IdeaProjects\shiroSpringBoot\src\main\java">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成的Mapper接口的路径 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="mybatis.mapping"
                             targetProject="C:\Users\Administrator\IdeaProjects\shiroSpringBoot\src\main\resources">
            <property name="enableSubPackages" value="true"/>
            <property name="rootClass" value="com.demo.mapper.common.BaseMapper"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 -->
        <table tableName="userinfo" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
    </context>

</generatorConfiguration>

然后build一下,双击下面的文件就好了 image