2015-12-18 23 views
1

我想用JDBC驱动程序将字符串(它包含保加利亚字符,如下所示'КИПЕПСИ')插入到MySQL数据库中如何使用com.mysql.jdbc.Driver将保加利亚字符字符串插入到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); 

是的DDL表tmptab如下:

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

但是,当我看到在T值他的数据库如下:

城市'? ?????”

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

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

+0

你在哪里看到这些?在Java中,在MySQL控制台...? – Jan

+0

当我在mysql workbench中运行select * from tmptab时,我看到了????。如果我在java控制台中打印,我也可以在java控制台上看到相同的(????)。 –

+0

如果我在java控制台上打印SQL语句如下System.out.println(SQL),我看到以下文本:INSERT INTO tmptab(city)VALUES('?? ?????') –

回答

1

谢谢Gord Thompson的快速帮助。

对于其他用户,网址存在问题。我删除了useUnicode并从URL字符串&如下:

静态最后弦乐DB_URL =“的jdbc:mysql的://sdax-retail-dev.cd50doqou1ik.eu-west-1.rds.amazonaws.com/sdax_qa?的characterEncoding = CP1251" ;

它现在按预期工作。

相关问题