RT
我的mysql设置的编码为utf8, 在java里边连接数据库的链接写的是:
String DBURL = "jdbc:mysql://localhost:3306/store_and_coupon_info?useUnicode=true&characterEncoding=utf8";
但是就是查询不出结果来,如果sql语句里边没中文就可以查询出来,救命啊- -
我的mysql设置的编码为utf8, 在java里边连接数据库的链接写的是:
String DBURL = "jdbc:mysql://localhost:3306/store_and_coupon_info?useUnicode=true&characterEncoding=utf8";
但是就是查询不出结果来,如果sql语句里边没中文就可以查询出来,救命啊- -
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;public class DBOperator {
private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
private static final String DBURL = "jdbc:mysql://localhost:3306/store_and_coupon_info?useUnicode=true&characterEncoding=utf8";
private static final String USERNAME = "root";
private static final String PASSWORD = "ght"; public static ResultSet queryByStoreName(String storeName) {
//System.out.println(storeName);
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select storeName, storeType, storeAddress, longitude, latitude from store where storeName like ?";
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, USERNAME, PASSWORD);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%" + storeName + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
System.out.println(rs.getDouble(4));
System.out.println(rs.getDouble(5));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(-1);
} catch (SQLException e) {
e.printStackTrace();
System.exit(-1);
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
}
是不是少个 - 。
new String(storeName.getBytes(), "utf8");
还是没成功....