jsp 表单模糊查询中文无法得到mysql数据

lymne 2013-05-06 06:19:50
在终端和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>



求高手解答谢谢!
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lymne 2013-05-06
  • 打赏
  • 举报
回复
引用 1 楼 xizhou704 的回复:
可能是数据库的编码问题。 连接语句改成这样试试: jdbc:mysql://localhost:8889/szu?useUnicode=true&characterEncoding=GB2312
的确是这样的,谢谢了!
xizhou704 2013-05-06
  • 打赏
  • 举报
回复
可能是数据库的编码问题。 连接语句改成这样试试: jdbc:mysql://localhost:8889/szu?useUnicode=true&characterEncoding=GB2312

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧