我继续挖掘(或玩)jaybird 3并得到已知错误"引起:java.sql.SQLNonTransientConnectionException:连接被拒绝:未指定连接字符集(属性lc_ctype,encoding,charSet或localEncoding)。请指定连接字符集(例如属性charSet = utf-8)或查阅Jaybird文档以获取更多信息。"
所以,请帮助我做错了什么以及我必须做些什么。
首先尝试
final Connection conn = DriverManager.getConnection(
"jdbc:firebirdsql:localhost/3050:g:\\Databases\\EMPLOYEE255.FDB?lc_ctype=utf8",
"sysdba",
"masterkey"
);
工作正常。但是,如果我不想(或不能)更改连接字符串怎么办?
正如我在faq中看到的那样:https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html我使用选项
运行我的java应用程序(来自netbeans)-Dorg.firebirdsql.jdbc.defaultConnectionEncoding=NONE
但得到同样的错误。那么好吧。也许我在netbeans中做错了...
我尝试通过Properties使用连接选项。所以。我改变了我的代码:
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;
}
运行应用程序 - 并出现同样的错误....我无法通过&#34; lc_ctype&#34;来自财产?或者我不明白?