其他分享
首页 > 其他分享> > jooq简单使用

jooq简单使用

作者:互联网

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.14.0.xsd">
    <!-- mysql8 连接-->
    <jdbc>
        <driver>com.mysql.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC&amp;allowPublicKeyRetrieval=true</url>
        <user>用户名</user>
        <password>密码</password>
    </jdbc>
    <generator>
        <!-- 代码生成器 -->
        <name>org.jooq.codegen.JavaGenerator</name>
<!--        <name>com.sun.utils.CustomJavaGenerator</name>-->
        <database>
            <!--include用于控制数据库中哪些表生成-->
            <includes>people|year_date</includes>
            <!--exclude用于控制数据库中哪些表不生成-->
            <!--<excludes></excludes>-->
            <!--数据库名称-->
            <inputSchema>test</inputSchema>
            <logSlowQueriesAfterSeconds>50</logSlowQueriesAfterSeconds>
        </database>
        <generate>
            <interfaces>true</interfaces>
            <!--是否生成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.test.jooq</packageName>
            <directory>/src/main/java</directory>
        </target>
    </generator>
</configuration>

配置文件主要是为了自动生成pojo类dao类 , 中间封装了简单的操作方法

         jooq会根据指定的数据表生成代码文件

dsl.insertInto(表).columns(字段1,字段2,字段3).values(值1,值2,值3).execute();
dsl.delete(表).where(条件).execute();
dsl.update(表).set(字段, 值).where(条件).execute();
List<People> peopleList = dsl.select(字段).from(表).fetch().into(People.class);

首先看一下基础的增删改查的操作是怎么写的

总体结构对比书写sql语句其实是一模一样的,

insert into 表 (列) values 值;

delete from 表 where 条件;

update 表 set 列=值 where 条件;

select 字段 from 表 where 条件;

书写的结构完全一致 , 只是其中的关键字是使用方法调用出来的拼接而成,最后拼接执行方法 , 获取返回值.

新增的时候略有不同的地方是 , 查询之后要放入一个返回对象进行保存 , 这个对象的类型需要在语句中进行指定.

数据库表操作类,不单单封装了增删改查方法,还有ddl操作,可以对数据库表结构进行操作

dsl.select();
dsl.update();
dsl.delete();
dsl.insertInto();
dsl.selectDistinct();
dsl.batch();

 

 

dsl.alterDatabase();
dsl.alterDomain();
dsl.alterIndex();
dsl.alterSequence();
dsl.alterTable();
dsl.alterType();
dsl.alterView();

表和字段静态类,可以获取数据库表的名称和全部/单个字段.这样在书写的时候就不用写字符串了,全部可以从中提取使用

Tables."表名"."字段"."sql的条件语句"
Tables.PEOPLE.as();
Tables.PEOPLE.NAME.as();
Tables.PEOPLE.field();
Tables.PEOPLE.NAME.eq();
Tables.PEOPLE.NAME.ne();
Tables.PEOPLE.NAME.isNull();

操作数据的函数和静态方法,对于一些需要聚合还有复杂函的操作,需要从DSL中寻找.

DSL.abs();
DSL.concat();
DSL.ifnull();
DSL.date();
DSL.dayOfWeek();
DSL.dayOfYear();

 

说的比较琐碎 , 还是需要自己实践一下 , 体会各处细节的操作技巧 , 使用起来还是非常像mybatis-plus的 

国内的教程非常的少 , 可以参考官网的文档 The jOOQ User Manual.

官方文档说的非常细致了.

标签:Tables,jooq,PEOPLE,简单,DSL,数据表,dsl,使用,true
来源: https://www.cnblogs.com/reverseapplepie/p/15019423.html