在使用FBManager

时间:2018-08-06 20:30:57

标签: java firebird jaybird

我已经使用jaybirds的类FBManager创建了一个数据库,但是我找不到为它指定default charset的方法(默认为NONE)。

我想念什么吗?创建数据库后可以定义它吗?

这是用于创建它的代码段

FBManager fbm = new FBManager();
fbm.start();
fbm.createDatabase("./fb.fdb", "user", "password");
fbm.stop();

Jaybird版本3.0.6和更高版本现已提供此功能。有关更多详细信息,请参见accepted answer

1 个答案:

答案 0 :(得分:3)

您什么都没有丢失:FBManager确实缺少此功能。考虑在http://tracker.firebirdsql.org/browse/JDBC

上提交改进通知单

此功能现已在Jaybird 3.0.6及更高版本中可用。添加了方法FBManager.setDefaultCharacterSet来设置默认字符集。

对于早期版本的Jaybird,作为一种解决方法,您将需要在创建数据库后更改默认字符集。

对于Firebird 3和更高版本,您可以使用

ALTER DATABASE SET DEFAULT CHARACTER SET UTF8

另请参阅Firebird 3发行说明中的​​Alter the Default Character Set

对于Firebird 2.5及更早版本,您需要直接修改系统表(Firebird 3不再支持):

UPDATE RDB$DATABASE SET RDB$CHARACTER_SET_NAME = 'UTF8'

如果UTF8是您想要的默认字符集,则将其替换为其他字符集。

任何一条语句都必须以数据库所有者或用户SYSDBA的身份执行。

请注意,更改默认字符集仅对在设置新默认值后 创建的列有效。现有的(var)char列将保留其旧字符集。

免责声明:我维护了Firebird的Jaybird JDBC驱动程序。