在 Jooq 中集成 Hikari 池
Posted
技术标签:
【中文标题】在 Jooq 中集成 Hikari 池【英文标题】:Integrating Hikari Pool in Jooq 【发布时间】:2019-06-13 16:40:34 【问题描述】:我第一次尝试在我当前的项目中使用 jooq(它是用 Java 编写的)。我想在 Jooq DSL 上下文中集成 Hikari 连接池。我想明确定义最大连接数。任何推荐的文章,我可以按照它的代码来阅读它。
谢谢
我已经设置了 jooq,现在我可以为我的数据库生成代码了。
public static void init()
Target l_target = new Target();
System.out.println("My directory is::"+l_target.getPackageName());
l_target.setDirectory("src/main/java");
l_target.setPackageName("com.my.paas.css.entity");
Configuration configuration = new Configuration()
.withJdbc(new Jdbc()
.withDriver("com.mysql.jdbc.Driver")
.withUrl("jdbc:mysql://localhost:3306/paas")
.withUser("root"))
.withGenerator(new Generator()
.withDatabase(new Database()
.withName("org.jooq.meta.mysql.MySQLDatabase")
.withIncludes(".*")
.withExcludes("")
.withInputSchema("paas"))
.withTarget(l_target));
try
GenerationTool.generate(configuration);
catch (Exception ex)
System.out.println();
ex.printStackTrace();
【问题讨论】:
【参考方案1】:一种方法是使用一个org.jooq.impl.DSL
的重载工厂方法,该方法接受javax.sql.DataSource
来构造您的org.jooq.DSLContext
:
using(DataSource datasource, SQLDialect dialect)
using(DataSource datasource, SQLDialect dialect, Settings settings)
可能看起来像这样:
final HikariConfig config = new HikariConfig();
config.setMinimumIdle(...);
config.setMaximumPoolSize(...);
// ...etc - whatever other pool behavior you desire
final HikariDataSource dataSource = new HikariDataSource(config);
final DSLContext dslContext = DSL.using(dataSource, SQLDialect.MYSQL)
【讨论】:
Jooq 将自行处理连接关闭和打开? 这就是DataSource
的用途
@SandeepPandey:是的,当你传递一个DataSource
时,jOOQ 会自动关闭连接,请参阅:jooq.org/doc/latest/manual/sql-building/dsl-context/…以上是关于在 Jooq 中集成 Hikari 池的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot2 集成三种连接池 c3p0 hikari druid
如何在 Ruby on Rails 中集成 Paypal 集成