gpt4 book ai didi

Java、MySQL : I save "Česká Třebová", 但保存了 "?eská T?ebová"(来自终端一切正常)

转载 作者:可可西里 更新时间:2023-11-01 07:39:43 24 4
gpt4 key购买 nike

当我从终端插入时一切正常:INSERT INTO towns VALUES (113, 'Česká Třebová', 22, "test", true);

但是当我通过JDBC手动保存时:

java.sql.Connection conn = null;
Statement stmt = null;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/a2b", "root", "root");
stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO towns VALUES (200, 'Česká Třebová', 22, 'test', true);");

...或从 Hibernate 持久化对象:

String townName = new String("Česká Třebová".getBytes(), "UTF-8");
townDao.persist(new Town(townName, CountryCode.AQ, "test", true));

...或使用 PreparedStatement:

PreparedStatement addTown = null;
String addTownPrepared = "INSERT INTO towns VALUES (1100, ?, 22, 'test', true)";
addTown = conn.prepareStatement(addTownPrepared);
addTown.setString(1, townName);
addTown.executeUpdate();

...我在 MySQL 5.5 看到 ?eská T?ebová

我在数据库中有许多城市,如 GöppingenWürzburgKolín - 问题不在于所有非拉丁符号。

========================================

我在 Lubuntu 14.04 下。

show variables like '%char%';

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

pom.xml 我有

<integration-test.jdbc.url><![CDATA[jdbc:mysql://localhost:3306/a2b?useUnicode=yes&characterEncoding=UTF-8]]></integration-test.jdbc.url>

我的 table :

CREATE TABLE towns (
id BIGINT AUTO_INCREMENT ,
name VARCHAR (256) NOT NULL ,
country SMALLINT NOT NULL ,
source VARCHAR (256) ,
is_active BIT DEFAULT 1 ,
PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

工作台截图: enter image description here

最佳答案

小心数据库的 URL!您确定您编辑了您认为的 URL 吗?

在我的 pom.xml我有:

<integration-test.jdbc.url> , <test.jdbc.url><jdbc.url> .

我需要更改 <jdbc.url>来自 jdbc:mysql://localhost:3306/a2b <![CDATA[jdbc:mysql://localhost:3306/a2b?useUnicode=yes&characterEncoding=UTF-8]]>

关于Java、MySQL : I save "Česká Třebová", 但保存了 "?eská T?ebová"(来自终端一切正常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24263003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com