妇科止痒炎症用药大全:我用JSP连接Mysql数据库,用中文作为查询条件怎么显示不出来?

来源:百度文库 编辑:高校问答 时间:2024/05/07 05:28:33
但是用英文的做条件就可以显示,请问这是怎么回事?请帮我看一下源代码
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.sql.*" %>

<% String sqlString=null;
request.setCharacterEncoding("GBK");
String username=request.getParameter("username");

if(username==null||username.trim().length()==0)
sqlString=new String("select * from chat");
else
sqlString=new String("select * from chat where Nickname like'%"+username.trim()+"%'"); %>
<html>
<body>
<% Connection con;
Statement sql;
ResultSet rs;

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery(sqlString);
rs.last();
int rownumber=rs.getRow();
out.print("<table border>");
out.print("<form action=db3.jsp method=post>");
out.print("<tr><td>查询姓名</td>");
out.print("<td colspan=6>");
out.print("<input type=text name=username>");

out.print("<input type=submit value=提交>");
out.print("</td></tr></form>");
out.print("<tr><td colspan=6 align=center>用户数据(共"+rownumber+"条记录)</td></tr>");

out.print("<tr>");
out.print("<td width=100>"+"用户名"+"</td>");
out.print("<td width=100>"+"密码"+"</td>");
out.print("<td width=100>"+"表情"+"</td>");
out.print("<td width=100>"+"性别"+"</td>");
out.print("<td width=100>"+"QQ号"+"</td>");
out.print("<td width=200>"+"电子邮件"+"</td>");
out.print("</tr>");
rs.beforeFirst();
while(rs.next())
{out.print("<tr>");
out.print("<td>"+rs.getString("Nickname")+"</td>");
out.print("<td>"+rs.getString("Password")+"</td>");
out.print("<td>"+rs.getString("Face")+"</td>");
out.print("<td>"+rs.getString("Sex")+"</td>");
out.print("<td>"+rs.getString("QQ")+"</td>");
out.print("<td>"+rs.getString("Email")+"</td>");
out.print("</tr>");
}

out.print("</table>");
con.close(); %>
</body>
</html>
这是一个查询名子的程序,如果我输入中文名,显示不出来,英文的可以。程序没有问题,哪里需要修改???

select * from chat where Nickname like BINARY '%汉字%'"

只要才行

换个别的字符集试试吧