JDBC 字符编码

2022-09-01 18:08:15

我有一个Java Web应用程序在GlassFish 3上运行,在MySQL上运行JPA(EclipseLink)。我面临的问题是,如果我使用该方法将实体保存到数据库中,则字段会失去完整性; 而不是某些字符。update()String'?'

服务器、页和数据库配置为使用 。UTF-8

发布表单数据后,下一页会正确显示数据。此外,在 NetBeans 调试中,当前实体的属性似乎也存储了正确的值。我不知道NetBeans调试是否可以信任;可能是它解码正确,但它是不正确的。String


答案 1

是 JDBC,而不是 JPA 决定了编码:

jdbc:mysql://localhost:3306/administer?characterEncoding=utf8

答案 2

我通过以下方式解决了这个问题:我使用GlassFish管理界面将此属性添加到我的连接池的设置中:

字符编码 = UTF-8


推荐