在项目的开发过程中,数据库的编码通常是ISO-8859-1,即latin1,而项目编码往往是UTF-8、GBK、GB2312,此时如果不在显示过程中,或者插入数据过程中,总之操作数据库的过程中进行转码操作,页面上的中文和数据库里的中文,通常会出现乱码现象。
下面就jdbc连接mysql举一个具体例子:
下面就jdbc连接mysql举一个具体例子:
<%@ page contentType="text/html;charset=gbk"%>
<%@ page import = "java.sql.*"%>
<html>
<title>JDBC测试mysql数据库</title>
<html>
<body background="imag/table_back.jpg">
<%
Connection conn = null ; //数据库连接
Statement sm = null ; //数据库操作
ResultSet rs = null ; //查询结果集
try
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/judgeonline?user=root&password=123&useUnicode=true&characterEncoding=UTF-8";
conn = DriverManager.getConnection(url) ;
sm=conn.createStatement();
String str = new String("待显示的中文".getBytes("gb2312"),"iso-8859-1");
String sql = "insert into users(user_id,nick) values('pppj040857','"+str+"')";
int flag = sm.executeUpdate(sql);
if(flag == 1)
{
%>
插入成功!
<%
}
else
{
%>
插入失败!
<%
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
conn.close();//连接一关闭,所有操作都将关闭
}
catch(Exception e){}
}
%>
</body>
</html>