2015-12-18 51 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" ;

它現在按預期工作。

相關問題