我正在尝试将 unicode 字符(希腊语)输入到我的数据库中。不过我读到,为了做到这一点,我必须将 unicode 字符设置为活动状态。如何将特定类的字符集设置为 unicode?
public class database {
public static database busDatabase = null;
protected String connection_url = "";
protected String driver_name = "";
protected String name = "";
protected String user = "";
protected String password = "";
protected Class driver_class = null;
protected static Connection connection = null;
protected ResultSet results = null;
protected String current_table = "";
protected Boolean error = false;
public database(String name, String user, String password) {
this(name, user, password, "jdbc:mysql://localhost:3306", "com.mysql.jdbc.Driver");
}
//public void run() {
// con = (Connection)DriverManager.getConnection(connection_url, user, password);
//}
public static Boolean getCon() throws SQLException
{
return connection.isValid(0);
}
public database(String name, String user, String password, String connection_url, String driver_name)
{
this.name = name;
this.user = user;
this.password = password;
this.connection_url = connection_url;
this.driver_name = driver_name;
}
public static void openBusDatabase()
{
try
{
busDatabase = new database("appointments", "root",
"some", "jdbc:mysql://localhost",
"com.mysql.jdbc.Driver");
busDatabase.open();
System.out.println("dbopened");
} catch (Exception ex) {
throw new InvalidQueryException("Unable to open database " + ex.getMessage());
}
}
}
将参数作为布尔值传递,以根据您的要求动态建立连接。您还需要在数据库端进行编码,我希望它已经存在。
根据条件更改连接字符串。
改变
"jdbc:mysql://localhost",
到
"jdbc:mysql://localhost?useUnicode=true&characterSetResults=utf8&characterEncoding=UTF-8",
可以选择指定排序规则,例如:
&connectionCollation=utf8_general_ci