jooq环境搭建及部署: 1,导入相应jar包并指定生成dao、实体类等的路径及自定义的生成策略 <build> <plugins> <plugin> <groupId>org.jooq</groupId> <artifactId>jooq-codegen-maven</artifactId> <version>3.8.4</version> <executions> <execution> <phase>none</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> </dependencies> <!-- Specify the plugin configuration. The configuration format is the same as for the standalone code generator --> <configuration> <!-- JDBC connection parameters <jdbc> <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://rm-bp1192yxk9be81ze5o.mysql.rds.aliyuncs.com:3306/athena</url> <user>athenadvlpdbuser</user> <password>q4UEL5z3CMLaQvZs0omUn3fVpU7IFN</password> </jdbc> --> <!----> <jdbc> <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://rm-bp174wmoh9b40f5h4.mysql.rds.aliyuncs.com:3306</url> <user>zeustestdbuser</user> <password>oSD7mVrAknYYSL5bT4ouP11lyc54f9</password> </jdbc> <!--<jdbc>--> <!--<driver>com.mysql.jdbc.Driver</driver>--> <!--<url>jdbc:mysql://localhost:3306/zeus?useSSL=false</url>--> <!--<user>root</user>--> <!--<password>456132</password>--> <!--</jdbc>--> <!--<jdbc>--> <!--<driver>com.mysql.jdbc.Driver</driver>--> <!--<url>jdbc:mysql://rm-bp174wmoh9b40f5h4.mysql.rds.aliyuncs.com:3306/imsc</url>--> <!--<user>imsctestdbuser</user>--> <!--<password>bJu86wZykB5eTCUI</password>--> <!--</jdbc>--> <!-- Generator parameters --> <generator> <database> <name>org.jooq.util.mysql.MySQLDatabase</name> <!--自定生成的表名,多个表用"|"隔开--> <!--<includes>(t_hera_[a-z,A-Z,_]{1,25}|tisbs[a-z,A-Z,_,0-9]{1,25}|tis[a-z,A-Z,_,0-9]{1,25}| company_[a-z,A-Z,_,0-9]{1,25})| accoun[a-z,A-Z,_]{1,25}| use[a-z,A-Z,_]{1,25}|tenant </includes>--> <includes>account</includes> <excludes></excludes> <!--指定库名--> <schemata> <schema> <inputSchema>zeus</inputSchema> </schema> <schema> <inputSchema>imsc</inputSchema> </schema> </schemata> <!--数据库名--> <!--<customTypes>--> <!--<customType>--> <!--<name>EncryptedString</name>--> <!--<type>java.lang.String</type>--> <!--<binding>com.xforceplus.imsc.converter.EncryptedStringConverter</binding>--> <!--</customType>--> <!--</customTypes>--> <!--<forcedTypes>--> <!--<forcedType>--> <!--<name>EncryptedString</name>--> <!--<expression>.*\.jkll05\.company_code</expression>--> <!--<types>varchar</types>--> <!--</forcedType>--> <!--</forcedTypes>--> </database> <generate> <pojos>true</pojos> <daos>true</daos> <!--<fluentSetters>true</fluentSetters>--> <pojosEqualsAndHashCode>true</pojosEqualsAndHashCode> <springAnnotations>true</springAnnotations> </generate> <!--指定生成的目标文件地址,默认会生成"库名文件夹"、DefaultCatalog日志类、表文件夹、库名文件类、daos、pojos、records--> <target> <packageName>com.xforceplus.hera.domain.jooq</packageName> <directory>src/main/java</directory> </target> <target> <packageName>com.xforceplus.hera.domain.dto</packageName> <directory>src/main/java</directory> </target> <!--指定自定义的生成策略--> <strategy> <name>com.xforceplus.hera.generate.ExtendGeneratorStrategy</name> </strategy> </generator> </configuration> </plugin> <!--<plugin>--> <!--<groupId>org.springframework.boot</groupId>--> <!--<artifactId>spring-boot-maven-plugin</artifactId>--> <!--</plugin>--> </plugins> </build> 2,自定义生成策略: package com.xforceplus.hera.generate; import org.jooq.tools.StringUtils; import org.jooq.util.DefaultGeneratorStrategy; import org.jooq.util.Definition; public class ExtendGeneratorStrategy extends DefaultGeneratorStrategy{ public static final String PREFIX_UPPER= "T_HERA_"; public static final String PREFIX_LOWER= "t_hera_"; public String getJavaClassName(Definition definition, Mode mode) { String sourceName = definition.getOutputName(); sourceName = sourceName.replace(' ', '_').replace('-', '_').replace('.', '_'); sourceName = sourceName.replace(PREFIX_UPPER, "").replace(PREFIX_LOWER, ""); if (sourceName.startsWith("t_") || sourceName.startsWith("T_")) { sourceName = sourceName.substring(2); } sourceName = StringUtils.toCamelCase(sourceName); if (mode == Mode.POJO) { sourceName = sourceName + "Obj"; } if (mode == Mode.RECORD) { sourceName = sourceName + "Record"; } else if (mode == Mode.DAO) { sourceName = sourceName + "Dao"; } else if (mode == Mode.INTERFACE) { sourceName = "I" + sourceName; } return sourceName; } }
jooq插件环境搭建及使用
猜你喜欢
转载自blog.csdn.net/qq_35255384/article/details/80418034
今日推荐
周排行