当前位置: 首页 > 知识库问答 >
问题:

使用SQL Server的JOOQ

赖俊
2023-03-14

我是ORM的忠实粉丝,特别是当涉及到。NET和实体框架时,使用LINQ使您的数据访问不那么乏味,更令人愉快。

然而,我目前正在研究Java,尤其是ORMS。我在SQL Server数据库中尝试了nHybernate--由于某些表中没有键(唯一约束),我开始查看Jooq。

不过,我已经设法使用JOOQ(V3.2.0)从SQL Server数据库生成了Java类--并非没有错误。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.2.0.xsd">
  <jdbc>
    <driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
    <url>jdbc:sqlserver://MYSERVER:1433;DatabaseName=MYDB</url>
    <user>MYUSER</user>
    <password>PWD</password>
  </jdbc>

  <generator>
    <name>org.jooq.util.DefaultGenerator</name>

    <database>
      <name>org.jooq.util.jdbc.JDBCDatabase</name>

      <inputSchema>dbo</inputSchema>

      <includes>.*</includes>

      <excludes></excludes>
    </database>

    <target>
      <packageName>com.quorum.sentinel.dataAccess</packageName>

      <directory>F:\Libraries\jooq\jOOQ-3.2.0\lib\gen</directory>
    </target>
  </generator>
</configuration>

对于未找到类的异常,我使用Java反编译程序在JAR文件jooq-meta-3.2.0.JAR中查看了这些类的位置。我看不到org.jooq.util.sqlserver.sqlserverDatabase类定义。

我正在用:

java-classpath jooq-3.2.0.jar;jooq-meta-3.2.0.jar;jooq-codegen-3.2.0.jar;sqljdbc4.jar;。generationtool/myjooqdbconfig.xml

这个org.jooq.util.sqlserver.sqlserverDatabase定义是否存在于任何JAR中?

此外,从上面的配置生成代码后,它似乎需要很长时间,并且似乎处于某种循环中。

在dbo-keys/tables/dbo下生成的文件中,有重复的表名,这是我在将文件复制到Netbeans项目中时注意到的(很多错误)。我删除了重复项,到目前为止,我可以在下面的代码中从数据库中读取各种表:

public static void main(String[] args) {
    Connection conn = null;

    String userName = "MYUSER";
    String password = "PWD";
    String url = "jdbc:sqlserver://MYSERVER:1433;DatabaseName=MYDB";

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        conn = DriverManager.getConnection(url, userName, password);

        DSLContext create = DSL.using(conn);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(new Date( new GregorianCalendar().getTimeInMillis())));
        SelectJoinStep<Record> from = create.select().from(Configuration.CONFIGURATION);
        Result<Record> result = from.fetch();
        System.out.println(simpleDateFormat.format(new Date( new GregorianCalendar().getTimeInMillis())));
        for (Record r : result) {
            Object id =  r.getValue(Configuration.CONFIGURATION.NAME);
            Object time = r.getValue(Configuration.CONFIGURATION.VALUE);
            System.out.println("Record:              : ID: " + id + " Time: " + time);
        }

        System.out.println(simpleDateFormat.format(new Date( new GregorianCalendar().getTimeInMillis())));

    } catch (Exception e) {
        // For the sake of this tutorial, let's keep exception handling simple
        e.printStackTrace();
    } finally {
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException ignore) {
            }
        }
    }
}
    null

共有1个答案

谭昕
2023-03-14

有了Jooq3.2,jOOQ变成了双重授权。SQL Server集成只有在jOOQ Professional Edition许可证下才可用。但是,您可以下载一个免费的30天试用版,该版本可以与SQL Server一起使用。

注意,jOOQ 3.2.1(即将发布)也有一个修正,它可以为community edition用户提供更多信息,而不仅仅是堆栈跟踪。

另请参见:Jooq-3.2.0和db2数据库

 类似资料:
  • 问题内容: 我正在尝试在SQLServer中聚合“ STRING”字段。我想找到与Oracle中相同的函数LISTAGG。 您知道如何执行相同的功能或其他方法吗? 例如, 我希望这个查询的结果是 问题答案: 从SQL Server 2017开始,该功能可用,从而大大简化了逻辑: 在SQL Server中,您可以用来获取结果:

  • node-sqlserver 是微软官方发布的 SQL Server 的 Node.js 的驱动程序。可允许 Windows 上运行的 Node.js 程序访问 SQL Server 和 Windows Azure SQL 数据库。 该项目托管在 Github 上。

  • sqlserver manager 是一个多功能sqlserver图形管理界面,支持自定义导入导出,自动扫描服务器,数据库。  

  • 我有两个连接到SQL Server 2005数据库的大程序。 现在,我们将使用SQL server 2008迁移到一个新服务器。当连接到新服务器时,程序不再工作,原因是在程序中的所有查询中,只使用表名,并且它们不是表。因此,SQL server 2008无法识别它们,除非我在表名之前使用架构名称。。。 对我来说,更改两个程序中的所有查询以在表名称之前添加模式名称是非常非常困难的。 我在这个论坛上读

  • 主要内容:第1节. 查询数据,第2节. 对数据进行排序,第3节. 限制返回行数,第4节. 过滤数据,第5节. 连接表,第6节. 分组数据,第7节. 子查询,第8节. 集合运算符,第9节. 修改数据,第10节. 数据定义,第11节. SQL Server数据类型,第12节. 约束MS SQL Server是Microsoft开发的关系数据库管理系统(RDBMS)。 本产品专为存储其他应用程序所需的检索数据的基本功能而构建。 它可以在同一台计算机上运行,也可以在网络上运行。 本教程介绍了SQL Se

  • 我在Wamp上使用symfony2,它连接在SQL服务器DB上。 当我开始与项目 一切都很好,速度很慢,但我的网站在127.0上还可以。0.1:8000,Doctrine2连接到sql server数据库时没有问题。 我的问题:当我localhost/MyProject/web/app_php.php(意味着我使用wamp而不是server: run)。Symfony抛出一个异常: PDOExc0

  • 官方的SQLServer数据库的JDBC驱动程序 驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver URL格式:jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

  • 如果你不想安装庞大的MSSQL IDE,或者不方便安装,你可以使用本软件集成到你的项目中,做一些简单的数据库管理工作。本软件将会持续更新,持续开发新的功能,以便满足更多需求。由于上传源码文件数量限制,源码已打包为DBOA.rar。 基于ASP.NET+C#+XML开发管理SQLSERVER数据库工具,B/S模式更适合无缝集成到任何使用IIS的B/S项目中。为您提供远程管理SQLSERVER数据库轻