JOOQ一个简单的入门例子及自动生成文件
时间:2019-06-12
本文章向大家介绍JOOQ一个简单的入门例子及自动生成文件,主要包括JOOQ一个简单的入门例子及自动生成文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、依赖,因为我用了jooq+mysql的环境
compile group: 'org.jooq', name: 'jooq-meta', version: '3.11.11' compile group: 'org.jooq', name: 'jooq-codegen', version: '3.11.11' compile group: 'commons-lang', name: 'commons-lang', version: '2.6' compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.39'
2、配置表到JAVA代码自动生成的配置类JOOQGenerator,代码如下
package com.suixingpay.jooq.generator; import org.apache.commons.lang.StringUtils; import org.jooq.codegen.GenerationTool; import org.jooq.codegen.JavaGenerator; import org.jooq.meta.jaxb.Configuration; import org.jooq.meta.jaxb.Database; import org.jooq.meta.jaxb.Generate; import org.jooq.meta.jaxb.Generator; import org.jooq.meta.jaxb.Jdbc; import org.jooq.meta.jaxb.Target; public class JOOQGenerator extends JavaGenerator { private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; private static final String JDBC_URL = "jdbc:mysql://localhost:3306"; private static final String JDBC_USERNAME = "root"; private static final String JDBC_PASSWORD = "111"; private static final String JOOQ_DATABASE_NAME = "org.jooq.meta.jdbc.JDBCDatabase"; private static final String GENERATOR_PATH = "test-core/src/main/java"; public static void genTables(String schemaName, String packageName, String includes, String excludes) throws Exception { Jdbc jdbc = createJdbc(); Generator generator = createGenerator(schemaName, packageName, includes, excludes); Configuration configuration = new Configuration() .withJdbc(jdbc) .withGenerator(generator); GenerationTool.generate(configuration); } private static Generator createGenerator(String schemaName, String packageName, String includes, String excludes) { Database database = createDatabase(schemaName, includes, excludes); Target target = createTarget(packageName); Generate generate = createGenerate(); return new Generator() .withDatabase(database) .withTarget(target) .withGenerate(generate); } private static Jdbc createJdbc() { return new Jdbc() .withDriver(JDBC_DRIVER) .withUrl(JDBC_URL) .withUser(JDBC_USERNAME) .withPassword(JDBC_PASSWORD); } private static Target createTarget(String packageName) { return new Target().withDirectory(GENERATOR_PATH).withPackageName(packageName); } private static Database createDatabase(String schemaName, String includes, String excludes) { Database database = new Database().withName(JOOQ_DATABASE_NAME).withInputSchema(schemaName); if (StringUtils.isNotBlank(includes)) { database.withIncludes(includes); } if (StringUtils.isNotBlank(excludes)) { database.withExcludes(excludes); } return database; } private static Generate createGenerate() { Generate generate = new Generate(); generate.withDaos(false) .withPojos(true); return generate; } private static void generate() throws Exception { genTables("jooq_test", "com.suixingpay.jooq.entity", ".*", ""); } public static void main(String[] args) throws Exception { generate(); } }
3、新建一张表sys_user,表结构如下
CREATE TABLE `sys_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(100) DEFAULT NULL COMMENT '用户名,登录账户', `real_name` varchar(100) DEFAULT NULL COMMENT '真实姓名', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `phone` varchar(15) DEFAULT NULL COMMENT '手机号', `pswd` varchar(32) DEFAULT NULL COMMENT '密码', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间', `user_status` int(1) DEFAULT '1' COMMENT '1:有效,0:禁止登录', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
4、运行JOOQGenerator的Main方法
public static void main(String[] args) throws Exception { generate(); }
5、在test-core模块生成了如下代码
原文地址:https://www.cnblogs.com/shileibrave/p/11013266.html
- SQL Server 存储过程生成insert语句
- silverlight 背景透明
- .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
- 如何利用深度学习识别千万张图片?
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(32)-swfupload多文件上传[附源码]
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(31)-MVC使用RDL报表
- 43 Hot Flex and ActionScript 3.0 APIs, tips and tools for Autumn 2008
- 异步数据存储
- 谈谈基于SQL Server 的Exception Handling[中篇]
- C# AD(Active Directory)域信息同步,组织单位、用户等信息查询
- 如何仅使用TensorFlow C+来训练深度神经网络
- 捕获silverlight滚轮事件
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(30)-本地化(多语言)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法