在终端和phpMyAdmin中均可以进行中文的模糊查询,唯独在jsp网页上无法进行中文模糊查询。设置表属性如下名字 类型 整理 属性 空 默认 额外 操作
1 studentName varchar(30) gb2312_chinese_ci 否 无
2 studentNum int(10) 否 无
3 sex varchar(10) gb2312_chinese_ci 否 无
4 studentAge int(11) 否 无
5 birthday date 否 无<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
//在获取表单的头页面声明与上面的一致<html>
<body>
<%
String getname=new String(request.getParameter("name").getBytes("iso-8859-1"),"gb2312");
//获取表单数据out.println(getname);//打印测试是否能正确显示中文,结果可以正常打印出表单中的中英文。Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:8889/szu","root","root");
Statement stat= conn.createStatement();String sql="SELECT *FROM student WHERE studentName like '%" + getname + "%'";
//模糊查询姓名, 当 getname 为英文时可以正常获取mysql里的数据并输出信息。当 getname 为中文时无法得到数据,显示空白。
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
String stuno=rs.getString("studentNum");
String stuname=rs.getString("studentName");
String sex=rs.getString("sex");
String age=rs.getString("studentAge");
String birthday=rs.getString("birthday");
out.println(stuno+" "+stuname+" "+sex+" "+age+" "+birthday+ "<br>");
}stat.close();
conn.close();
%>
</body>
</html>求高手解答谢谢!
1 studentName varchar(30) gb2312_chinese_ci 否 无
2 studentNum int(10) 否 无
3 sex varchar(10) gb2312_chinese_ci 否 无
4 studentAge int(11) 否 无
5 birthday date 否 无<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
//在获取表单的头页面声明与上面的一致<html>
<body>
<%
String getname=new String(request.getParameter("name").getBytes("iso-8859-1"),"gb2312");
//获取表单数据out.println(getname);//打印测试是否能正确显示中文,结果可以正常打印出表单中的中英文。Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:8889/szu","root","root");
Statement stat= conn.createStatement();String sql="SELECT *FROM student WHERE studentName like '%" + getname + "%'";
//模糊查询姓名, 当 getname 为英文时可以正常获取mysql里的数据并输出信息。当 getname 为中文时无法得到数据,显示空白。
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
String stuno=rs.getString("studentNum");
String stuname=rs.getString("studentName");
String sex=rs.getString("sex");
String age=rs.getString("studentAge");
String birthday=rs.getString("birthday");
out.println(stuno+" "+stuname+" "+sex+" "+age+" "+birthday+ "<br>");
}stat.close();
conn.close();
%>
</body>
</html>求高手解答谢谢!
解决方案 »
- 在线,急,java jsp 在第一中选中一个checkbox值,然后点击下一页,再选中一或多个checkbox值,然后再点击第一页时,刚选中的值还能显示出来
- 手动设计web 报表,大家有什么看法
- mozilla浏览器不支持媒体播放的插件,怎么办?
- 请教
- 我的servlet为什么不能运行呢,大家来看看??急
- action里面如何通过actionform取得select(多选)的值?
- win2003下挂JSP + SQL2000
- 开学
- 一些校园网、网站的端口流量图是怎么做出来的??
- 在Servlet中使用Jdbc-odbc连接access数据库,为什么模糊查询查不出记录啊,求救!!
- 求助:关于<s:select>下拉菜单的问题
- 求救!!关于log4j的问题
连接语句改成这样试试:
jdbc:mysql://localhost:8889/szu?useUnicode=true&characterEncoding=GB2312