我已经使用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。
答案 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驱动程序。