首先用的Maven框架,引包:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<type>jar</type>
<scope>compile</scope>
</dependency>


        存档对mysql的基本读写操作

try {
Connection conn = null;
String sql;
String url = "jdbc:mysql://10.10.10.18:3306/jacob?"
+ "user=jacob_ro&password=mypassword&useUnicode=true&characterEncoding=gbk";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
//读数据举例
sql = "select name from me_media";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = new String(rs.getString(1).getBytes("gbk"));
System.out.println(name);
}
//写数据举例
sql = "insert into me_media(name,id) value('每日新闻',123)";
stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}


由于线上线下的编码问题,对于中文字符可能会出现乱码的情况,比如都成了???样子,我的解决方法是尝试不同的编码来读取数据库的数据,同时在取数据出来的时候也要重新编码一下。比如我现在的代码处理mysql的中文,首先链接数据库的时候选择gbk,将数据拿到后getBytes("gbk")后再变回String,在这里变回String的时候回默认转为Java程序跑的时候的编码。