jooq自动生成java代码【无脑,史上最简单】

2023-11-30 06:48

本文主要是介绍jooq自动生成java代码【无脑,史上最简单】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:eclipse+maven

1.首先新建一个maven项目

2.然后把我下面的代码贴到pom.xml里面,数据库用户名密码改成自己的

<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><groupId>com</groupId><artifactId>myspringboot</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>myspringboot</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><!--防止maven改动IDE的language level --><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><!--数据库迁移所用的参数 --><db.driver>com.mysql.jdbc.Driver</db.driver><db.url>jdbc:mysql://localhost:3306</db.url><db.username>root</db.username><db.password>root</db.password><db.schema>test</db.schema></properties><parent>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>1.4.1.RELEASE</version>  </parent>  <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>com.jolbox</groupId><artifactId>bonecp</artifactId><version>0.8.0.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  </dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-thymeleaf</artifactId>  </dependency>  <!--JDBC连接池 --><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency><!--数据库schema代码生成器 --><dependency><groupId>org.jooq</groupId><artifactId>jooq-codegen</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><exclusions><exclusion><!-- 取消引入tomcat jdbc --><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId></exclusion></exclusions></dependency></dependencies><!--数据库代码生成的插件 --><build><plugins><plugin><!-- Specify the maven code generator plugin --><groupId>org.jooq</groupId><artifactId>jooq-codegen-maven</artifactId><!-- The plugin should hook into the generate goal --><executions><execution><goals><goal>generate</goal></goals></execution></executions><configuration><!-- JDBC connection parameters --><jdbc><driver>com.mysql.jdbc.Driver</driver><url>${db.url}</url><user>${db.username}</user><password>${db.password}</password></jdbc><!-- Generator parameters --><generator><database><name>org.jooq.util.mysql.MySQLDatabase</name><includes>.*</includes><inputSchema>${db.schema}</inputSchema><unsignedTypes>false</unsignedTypes><customTypes><customType><name>timestamp2DateConverter</name><type>java.util.Date</type><converter>com.util.Timestamp2DateConverter</converter></customType><customType><name>sqlDate2DateConverter</name><type>java.util.Date</type><converter>com.util.SQLDate2DateConverter</converter></customType><customType><name>byte2IntegerConverter</name><type>java.lang.Integer</type><converter>com.util.Byte2IntegerConverter</converter></customType></customTypes><forcedTypes><forcedType><name>timestamp2DateConverter</name><types>DATETIME|TIMESTAMP</types></forcedType><forcedType><name>byte2IntegerConverter</name><types>TINYINT</types></forcedType></forcedTypes></database><generate><fluentSetters>true</fluentSetters><pojos>true</pojos><pojosToString>true</pojosToString><pojosEqualsAndHashCode>true</pojosEqualsAndHashCode><daos>true</daos><springAnnotations>true</springAnnotations></generate><target><packageName>sxj.db</packageName><directory>src/main/java</directory></target></generator></configuration></plugin></plugins><pluginManagement><plugins><!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--><plugin><groupId>org.eclipse.m2e</groupId><artifactId>lifecycle-mapping</artifactId><version>1.0.0</version><configuration><lifecycleMappingMetadata><pluginExecutions><pluginExecution><pluginExecutionFilter><groupId>org.jooq</groupId><artifactId>jooq-codegen-maven</artifactId><versionRange>[3.8.4,)</versionRange><goals><goal>generate</goal></goals></pluginExecutionFilter><action><ignore></ignore></action></pluginExecution></pluginExecutions></lifecycleMappingMetadata></configuration></plugin></plugins></pluginManagement></build></project>

3.右击项目-run as -maven generate-sources

4.完成了。

备注:有三个类你们可能用得上

Byte2IntegerConverter.java

package com.util;import org.jooq.Converter;import java.util.Objects;public class Byte2IntegerConverter implements Converter<Byte, Integer> {private static final long serialVersionUID = 1L;@Overridepublic Integer from(Byte databaseObject) {return Objects.isNull(databaseObject) ? null : databaseObject.intValue();}@Overridepublic Byte to(Integer userObject) {return Objects.isNull(userObject) ? null : userObject.byteValue();}@Overridepublic Class<Byte> fromType() {return Byte.class;}@Overridepublic Class<Integer> toType() {return Integer.class;}}

Timestamp2DateConverter.java

package com.util;import org.jooq.Converter;import java.sql.Timestamp;
import java.util.Date;
import java.util.Objects;public class Timestamp2DateConverter implements Converter<Timestamp, Date> {private static final long serialVersionUID = 1529338732611199027L;@Overridepublic Date from(Timestamp databaseObject) {return Objects.isNull(databaseObject) ? null : new Date(databaseObject.getTime());}@Overridepublic Timestamp to(Date userObject) {return Objects.isNull(userObject) ? null : new Timestamp(userObject.getTime());}@Overridepublic Class<Timestamp> fromType() {return Timestamp.class;}@Overridepublic Class<Date> toType() {return Date.class;}}

SQLDate2DateConverter.java

package com.util;import org.jooq.Converter;import java.util.Date;
import java.util.Objects;public class SQLDate2DateConverter implements Converter<java.sql.Date, Date> {@Overridepublic Date from(java.sql.Date databaseObject) {return Objects.isNull(databaseObject) ? null : new Date(databaseObject.getTime());}@Overridepublic java.sql.Date to(Date userObject) {return Objects.isNull(userObject) ? null : new java.sql.Date(userObject.getTime());}@Overridepublic Class<java.sql.Date> fromType() {return java.sql.Date.class;}@Overridepublic Class<Date> toType() {return Date.class;}}

 

 

这篇关于jooq自动生成java代码【无脑,史上最简单】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436042

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(