0

我继续使用 jaybird 3 挖掘(或玩)并得到已知错误“原因:java.sql.SQLNonTransientConnectionException:连接被拒绝:未指定连接字符集(属性 lc_ctype、编码、charSet 或 localEncoding)。请指定连接字符集(例如属性 charSet=utf-8)或查阅 Jaybird 文档以获取更多信息。”

所以,请帮助我做错了什么,我必须做什么。

  1. 第一次尝试

    final Connection conn = DriverManager.getConnection(
            "jdbc:firebirdsql:localhost/3050:g:\\Databases\\EMPLOYEE255.FDB?lc_ctype=utf8",
            "sysdba",
            "masterkey"
    );
    

    这很好用。但是如果我不想(或不能)更改连接字符串怎么办?

  2. 正如我在常见问题解答中看到的:https ://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html我使用选项运行我的 java 应用程序(来自 netbeans)

    -Dorg.firebirdsql.jdbc.defaultConnectionEncoding=NONE
    

但得到了同样的错误。那么好吧。可能是我在netbeans中做错了什么......

  1. 我尝试通过属性使用连接选项。所以。我改变我的代码:

    public DataSource createDataSource(){
        final DriverManagerDataSource ds = new DriverManagerDataSource();
        ds.setDriverClassName( "org.firebirdsql.jdbc.FBDriver" );
        ds.setUrl( getConnectionURL( )); //here no appended "?lc_type...."
        ds.setUsername( getLogin() );
        ds.setPassword( getPassword() );
        //from here--->
        Properties pr = new Properties();
        pr.setProperty("lc_ctype", "utf8");
        ds.setConnectionProperties(pr);
        //<---to here
        return ds;
    }
    

运行应用程序 - 并得到同样的错误....我不能从属性传递“lc_ctype”?还是我没明白什么?

4

0 回答 0