本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

在 Apache Derby 中使用 Java 函数

发布于2021-11-28 10:31     阅读(425)     评论(0)     点赞(2)     收藏(3)


我在 Apache Derby 中使用函数时遇到了问题,因为我无法让 Derby 找到我的自定义函数。典型的错误消息如下所示:

The class 'de.uniba.kinf.projm.hylleblomst.database.sql.utils.GroupConcat' does not exist or is inaccessible. 
This can happen if the class is not public.

文档指出该方法必须是公共的和静态的。这就是我想要使用的:

package de.uniba.kinf.projm.hylleblomst.database.sql.utils;
public final class GroupConcat {
    public static String groupConcat(String separator, String... arguments) {
        StringBuilder result = new StringBuilder("");
        for (String arg : arguments) {
            result.append(arg + separator + " ");
        }
        result.delete(result.length() - 2, result.length());
        return result.toString();
    }
}

基本上,我只想将 GroupConcat 功能添加到标准中未在 Derby 中提供的数据库中。我用来将函数添加到数据库的语句是这样的:

CREATE FUNCTION SQL_UTIL.GROUP_CONCAT 
    ( SEPARATOR CHAR, ARGS VARCHAR(255) ... )
    RETURNS VARCHAR(2000)
    PARAMETER STYLE DERBY
    NO SQL LANGUAGE JAVA
    EXTERNAL NAME 'de.uniba.kinf.projm.hylleblomst.database.sql.utils.GroupConcat.groupConcat'

我还将 GroupConcat 类打包在一个 jar 中,并将其添加到类路径中,Derby 应该能够在该路径中找到它并直接将其添加到数据库中。这是我所做的: .jar 位于项目的 lib 文件夹中,它也是构建路径的一部分(我使用的是 Eclipse)。它在项目的 CLASSPATH 文件中的条目如下所示:

<classpathentry kind="lib" path="lib/groupConcat.jar"/>

为了更好的衡量和一些绝望,我还将它添加到我系统的类路径中:

. ; ..;%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbytools.jar;C:\Users\workspace\kinf-workspace\General\lib

我的错误可能很微不足道,但总的来说,我对 Derby 和数据库还是很陌生,所以我很感激任何帮助。

提前致谢!


解决方案


事实证明,这个问题更具体到 Eclipse,而且本质上是微不足道的。尽管包含 Java 类的 jar 已经在类路径中,但 Eclipse 没有将 jar 添加到运行配置中。显然,类路径从那里传递到德比,然后当然找不到类。因此,所有要做的就是将包含相关方法的类打包到一个 jar 中,将其添加到项目的库中,将其添加到运行配置的类路径中并运行它。

经验教训:永远不要相信您的 IDE 可以完成您的(所有)工作。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/337853/6ac5151cfbb96b3e938a/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

2 0
收藏该文
已收藏

评论内容:(最多支持255个字符)