色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java連接mysql亂碼

錢斌斌2年前11瀏覽0評論

在Java中連接MySQL時,經(jīng)常出現(xiàn)亂碼的問題。原因是MySQL的默認(rèn)編碼是utf8,而Java的默認(rèn)編碼是ISO-8859-1。因此,需要對Java程序進行編碼設(shè)置,以避免亂碼問題的出現(xiàn)。

Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8", "root", "password");
stmt = conn.prepareStatement("select * from users where username = ?");
stmt.setString(1, "張三");
rs = stmt.executeQuery();
while (rs.next()) {
String name = rs.getString("username");
System.out.println("姓名:" + name);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

在上面的代碼中,我們可以看到在連接MySQL時,使用了如下URL:

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

其中,useUnicode=true表示使用Unicode編碼,characterEncoding=utf-8表示使用UTF-8編碼方式。

此外,在對數(shù)據(jù)庫進行操作時,我們可以使用如下方式進行編碼設(shè)置:

stmt = conn.prepareStatement("select * from users where username = ?");
stmt.setString(1, "張三");

在設(shè)置參數(shù)時,我們可以使用Java中的字符串類型來表示中文字符。而在數(shù)據(jù)庫中的存儲,也應(yīng)該使用UTF-8編碼方式,以避免出現(xiàn)亂碼問題。

最后,要記得在程序退出時關(guān)閉數(shù)據(jù)庫相關(guān)的資源,以確保程序能夠正常運行,同時也避免資源浪費。