如何使用com.mysql.jdbc.Driver将保加利亚字符串插入MySQL数据库“

时间:2015-12-18 16:07:18

标签: java mysql jdbc

我正在尝试使用JDBC驱动程序将一个字符串(包含保加利亚字符,如下所示'КИПЕПСИ')插入MySQL数据库。

下面是我试图插入的代码片段。

 String DB_URL = "jdbc:mysql://myurl.amazonaws.com/mydatabase?useUnicode=true&characterEncoding=Cp1251";

   static final String USER = "username";
   static final String PASS = "mypassword";

   Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

   String SQL = "INSERT INTO tmptab(city) VALUES('КИ ПЕПСИ')";

   Statement stmt = conn.createStatement();

   stmt.executeUpdate(SQL);

表tmptab的DDL如下:

create table tmptab (city varchar(255) COLLATE cp1251_bulgarian_ci DEFAULT NULL) DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci;

但是当我在数据库中看到值时,它如下:

  

城市'?? ?????“

我不确定我在这里做错了什么。我只是假设它与charset编码有关。如果可以提供任何帮助,我将不胜感激。

我还想提一下,当我将数据插入本地系统时,它会正确插入。但是当我尝试插入运行到亚马逊云的MySQL数据库时,我没有得到适当的值插入。我只是看到了???????。

1 个答案:

答案 0 :(得分:1)

感谢Gord Thompson提供快速帮助。

对于其他用户,网址存在问题。我删除了useUnicode和&来自网址的字符串如下:

static final String DB_URL =“jdbc:mysql://sdax-retail-dev.cd50doqou1ik.eu-west-1.rds.amazonaws.com/sdax_qa?characterEncoding = Cp1251”;

现在按预期工作。