小编ibr*_*041的帖子

Oracle JDBC:如何将UUID插入RAW(16)列

我在Oracle中有RAW(16)PK列,并尝试使用JDBC插入其中:

        PreparedStatement stmt = connection.prepareStatement("insert into COUNTRY (id, state, version, code, name, nationality, issuing_entity, country) values (?, ?, ?, ?, ?, ?, ?, ?)");
        UUID id = UUID.randomUUID();
        stmt.setObject(1, id, Types.BINARY);
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个例外:

java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8494)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7995)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8559)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:225)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.setObject(HikariProxyPreparedStatement.java)
at rw.gov.dgie.framework.test.AbstractTestCaseWithDB.tryToInsertCountry(AbstractTestCaseWithDB.java:78)
at rw.gov.dgie.framework.test.AbstractTestCaseWithDB.dbSetup(AbstractTestCaseWithDB.java:62)
at test.rw.gov.dgie.bms.terr.service.TestCountryService.init(TestCountryService.java:37)
Run Code Online (Sandbox Code Playgroud)

尝试使用DbSetup插入测试数据时,我遇到了相同的异常。

有没有办法使JDBC将UUID插入RAW(16)列?

我正在使用Oracle JDBC 12.2.0.1.0。

oracle uuid jdbc dbsetup

6
推荐指数
2
解决办法
2475
查看次数

C++元编程 - 编译时间搜索树

更新:抱歉令人困惑的术语 - 我不需要二叉树,但需要分段树或区间树.

想象一下,每次执行我的程序时,我都必须静态初始化一个搜索树.

Tree t;
t.add(10, 'Apple');
t.add(20, 'Pear');
t.add(50, 'Orange');
...
t.add(300, 'Cucumber');

..
// then I use it.
int key = 15;
String s = t.lookup(key) // Returns 'Apple' ( as the key is between 10 and 20)
Run Code Online (Sandbox Code Playgroud)

树中的键和值是"静态的",是硬编码的,但必须不时地进行维护.是否存在元编程技巧如何在编译期间将键值组织成二进制搜索树(或跳过列表)?

例如,整个搜索树是直接在代码中实现的.text,什么都没有.data?我还可以"预测"键的数量并提供订单.

c++ binary-tree template-meta-programming

4
推荐指数
1
解决办法
1213
查看次数

如何识别应用程序在 Linux 上以深色主题运行?

我开发了一个使用 qscintilla 作为文本编辑器的应用程序。我还实现了自定义词法分析器来突出语言特定的关键字。到目前为止,突出显示关键字的样式在我的应用程序中是硬编码的,并且在 Windows/Linux(Ubuntu)/Mac 上的默认主题中看起来很不错。

当用户选择深色主题(在 Linux 上)时会出现问题。根据 QScintilla 版本,编辑器的某些部分确实反映了当前的主题颜色,而其他部分则没有。此外,我的自定义样式在深灰色背景上呈现深蓝色字母。

我正在寻找一些 Qt 类,这将允许我访问当前系统主题。我不想为我的应用程序小部件定义样式。我想知道什么是系统默认的非比例字体,它的大小、颜色是什么……如果我知道使用了深色方案,我会选择互补色来突出显示关键字。

我检查了 QStyle、QPlatformTheme 和其他 qt 类的文档,在我看来,它们更多地用于定义新样式,然后用于描述当前样式。

c++ qt themes qscintilla qt5

4
推荐指数
2
解决办法
1427
查看次数

如何知道我是否使用Java EE?

今天我通过.sh官方Oracle源下载文件并使用该sudo sh filename.sh命令运行它来安装Java EE .

但是,我的Linux Mint机器中有几个版本的Java,使用该命令时可以访问sudo update-alternatives --config java:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1074      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1074      manual mode

Press enter to keep the current choice[*], or type selection number: 
Run Code Online (Sandbox Code Playgroud)

当我使用java -version命令时,这就是我得到的:

$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server …
Run Code Online (Sandbox Code Playgroud)

java eclipse linux bash

0
推荐指数
1
解决办法
3250
查看次数