Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在UTF-8 MySQL数据库和BoneCP中插入日语字符串_Java_Mysql_Sql_Encoding_Utf 8 - Fatal编程技术网

Java 在UTF-8 MySQL数据库和BoneCP中插入日语字符串

Java 在UTF-8 MySQL数据库和BoneCP中插入日语字符串,java,mysql,sql,encoding,utf-8,Java,Mysql,Sql,Encoding,Utf 8,我在MySQL中的Java应用程序中插入日语字符时遇到问题。 如果我插入此字符串“今日は", 我明白了吗 我的表及其字段使用UTF-8。 我认为不涉及表结构,因为当我从PHP插入相同的字符串时,它可以工作 CREATE TABLE `pool` ( `id` int(8) NOT NULL AUTO_INCREMENT, `message` varchar(160) COLLATE utf8_bin NOT NULL DEFAULT '' PRIMARY KEY (`id`), )

我在MySQL中的Java应用程序中插入日语字符时遇到问题。
如果我插入此字符串“今日は", 我明白了吗

我的表及其字段使用UTF-8。 我认为不涉及表结构,因为当我从PHP插入相同的字符串时,它可以工作

CREATE TABLE `pool` (
  `id` int(8) NOT NULL AUTO_INCREMENT, 
  `message` varchar(160) COLLATE utf8_bin NOT NULL DEFAULT ''
  PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
我正在使用lib“BoneCPConfig”连接到数据库,该库为我管理一个连接池:

Class.forName("com.mysql.jdbc.Driver");

Properties props = new Properties();
props.setProperty("characterEncoding", "UTF-8");
props.setProperty("useUnicode", "true");

BoneCPConfig config = new BoneCPConfig(props);
config.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST_NAME + "/" + MYSQL_BASE_NAME);
config.setMinConnectionsPerPartition(MIN_CONNEXION_PER_PARTITION); 
config.setPartitionCount(PARTITION_COUNT); 
config.setUsername(MYSQL_LOGIN);
config.setPassword(MYSQL_PASSWORD);
我这样插入:

String query = "INSERT INTO pool (message) VALUES(?) ";

PreparedStatement insertStatement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
insertStatement.setString(1, "今日は");
insertStatement.execute();
我认为我的问题在于connexion配置,但我不知道该怎么办:-/ 你有主意吗


编辑:
问题已解决,请参见下面的

问题是lib-BoneCP没有使用传入参数的属性。。。 我将其替换为:

Properties props = new Properties();
props.setProperty("characterEncoding", "UTF-8");
props.setProperty("useUnicode", "true");

BoneCPConfig config = new BoneCPConfig(props);
config.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST_NAME + "/" + MYSQL_BASE_NAME);
与:

BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST_NAME + "/" + MYSQL_BASE_NAME + "?user=" + MYSQL_LOGIN + "&password=" + MYSQL_PASSWORD + "&characterEncoding=utf-8");

问题是lib-BoneCP不使用传入参数的属性。。。 我将其替换为:

Properties props = new Properties();
props.setProperty("characterEncoding", "UTF-8");
props.setProperty("useUnicode", "true");

BoneCPConfig config = new BoneCPConfig(props);
config.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST_NAME + "/" + MYSQL_BASE_NAME);
与:

BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl("jdbc:mysql://" + MYSQL_HOST_NAME + "/" + MYSQL_BASE_NAME + "?user=" + MYSQL_LOGIN + "&password=" + MYSQL_PASSWORD + "&characterEncoding=utf-8");

完美地工作完美地工作