JOOQ入门随记

JOOQ官方文档:https://www.jooq.org/learn/

暂时没有看见中文文档。

1.JOOQ连接前提

2.JOOQ连接依赖

  • 如果还没有下载JOOQ,请先下载:   
  • http://www.jooq.org/download
  • 或者,可以创建一个Maven依赖项来下载jOOQ :
  • 本人使用如下依赖项,pom.xml
<dependency>  
    <groupId>org.jooq</groupId>
    <artifactId>jooq</artifactId> 
    <version>3.11.4</version> 
</dependency> 
<dependency> 
    <groupId>org.jooq</groupId> 
    <artifactId>jooq-meta</artifactId>
    <version>3.11.4</version>
</dependency>
 <dependency> 
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen</artifactId>
    <version>3.11.4</version> 
</dependency>  

官方提供其他依赖项:

https://www.jooq.org/doc/3.11/manual/getting-started/tutorials/jooq-in-7-steps/jooq-in-7-steps-step1/

另外需要添加:

<plugin>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen-maven</artifactId>
                <version>${jooq.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configurationFile>src/main/resources/JooqConfig.xml</configurationFile>
                </configuration>
            </plugin>

3.JOOQ配置文件:

  • 在这一步中,我们将使用jOOQ的命令行工具来生成映射到我们创建的SQL表的类
  • 配置文件路径:src/main/resources/JooqConfig.xml

         JooqConfig.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
    <jdbc>
        <!-- 配置需要的数据库的驱动,本例采用postgres -->
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <!-- 配置数据库地址 -->
        <!-- newsdata为我的数据库名称,修改称自己的,'?'后面的是连接一系列参数,随意-->
        <url>jdbc:mysql://localhost:3306/newsdata?serverTimezone=UTC</url>
        <!-- 配置数据库用户名-->
        <user>root</user>
        <!-- 配置数据库密码-->
        <password>123</password>
    </jdbc>
    <generator>
        <!-- 代码生成器 -->
        <name>org.jooq.codegen.JavaGenerator</name>
        <database>
            <!--强制为scheme1模式下所有的含有id域生成id-->
            <syntheticPrimaryKeys>scheme1\..*\.id</syntheticPrimaryKeys>
            <!--是否重写主键-->
            <overridePrimaryKeys>override_primmary_key</overridePrimaryKeys>

            <name>org.jooq.meta.mysql.MySQLDatabase</name>

            <!--include和exclude用于控制为数据库中哪些表生成代码-->
            <includes>.*</includes>
            <!--<excludes></excludes>-->

            <!--数据库名称-->  <!--需要修改--> 
            <inputSchema>newsdata</inputSchema>
        </database>

        <generate>
            <!--是否生成dao和pojo-->
            <daos>true</daos>
            <pojos>true</pojos>
            <!--是否把数据库时间类型映射到java 8时间类型-->
            <javaTimeTypes>true</javaTimeTypes>
            <!--<interfaces>true</interfaces>-->
            <!--是否在生成的代码中添加spring注释,比如@Repository-->
            <springAnnotations>false</springAnnotations>
        </generate>

        <target>
            <!--生成代码文件的包名及放置目录 修改-->
            <packageName>com.tj.newsdemo</packageName>
            <directory>src/main/java</directory>
        </target>
    </generator>
</configuration>

 

注意:此处是让JOOQ连接数据库  然后自动生成一些方便实用的代码。

  • 使用JOOQ的包编译
    • 我使用的是IDEA中右侧按键Maven按键下
      • joop-codegen下 joop-codegen:generate自动编译
  • 官网编译方法:

           https://www.jooq.org/doc/3.11/manual/getting-started/tutorials/jooq-in-7-steps/jooq-in-7-steps-step3/

  • 随后便可以在src/main/java (在配置JooqConfig.xml文件你预设的生成目录下) 下面看到生成文件   

4.开始连接数据库

   建立JDBC连接     

  • 注意:此处与上面配置文件所建立的连接不同,
    • 配置文件是为了连接数据库生成方便实用的代码,在生成完代码文件就断开了(自己理解)
    • 此处JDBC是为了自己写的代码连接数据库,
private static String driver="com.mysql.jdbc.Driver";

    private static String url="jdbc:mysql://127.0.0.1:3306/newsdata";
    private static String username="root";
    private static String password="123";

    private static Connection ct=null;
    private static DSLContext dslContext=null;
    private static Result<Record> result=null;
    private static Table<Record> table=null;

    static {
        try {
            Class.forName(driver);
            ct=DriverManager.getConnection(url, username, password);
            dslContext=DSL.using(ct);
            table=DSL.table("student");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

代码摘录自:https://blog.csdn.net/xianzhixianzhixian/article/details/78894256

因为初次接触:写下自己的理解

  • DriverManager.getConnection获取JDBC连接池里面的数据库连接。
  • DSLContext 是一个JOOQ特有的类  用于数据库增删改查,但也不止如此用法文档

https://wenku.baidu.com/view/c05eb24526d3240c844769eae009581b6bd9bd1d.html

 

目前学到这。

请标明处处谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值