js连接数据库查询到信息后无法在网页上显示,但如果查询框不输入name,则可以输出表中全部信息,求大神指教!

lvdoubin 2019-01-19 05:14:15

这是查询页面的代码

<%@ page contentType="text/html"%>

<%@page pageEncoding="gb2312"%>

<%@page import="java.sql.*" %> <%--导入java.sql包--%>

<html>

<head>

<title >个人信息查询</title>

</head>

<body bgcolor="skyblue">

<%

try {

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_users";

String username = "root";

String password = "hang1314521..";

Connection conn = DriverManager.getConnection(url, username, password);

if(conn != null){

out.print("数据库连接成功!");

out.print("<br />");



%>

<table align="center" border="2">

<tr>

<td width="100" id="title">id</td>

<td width="100" name="title">姓名</td>

<td width="100" sno="title">学号</td>

<td width="100" sex="title">性别</td>

<td width="100" age="title">年龄</td>

</tr>

<%

Statement stmt = null;

ResultSet rs = null;

String name = new String(request.getParameter("name").getBytes("iso-8859-1"), "gb2312");


String sql = "SELECT * FROM test1 WHERE name like '%"+name+"%' ";

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

out.print("查询结果:");
out.print("<br/>");


while (rs.next()) {%>

<tr>

<td width="100" ><%=rs.getString("id") %></td>

<td width="100" ><%=rs.getString("name") %></td>

<td width="100"><%=rs.getString("sno") %></td>

<td width="100"><%=rs.getString("sex") %></td>
<td width="100"><%=rs.getString("age") %></td>

</tr>

<%

}

}else{

out.print("连接失败!");

}

}catch (Exception e) {

e.printStackTrace();

out.print("数据库连接异常!");

}

%>

</table>

<h1 align="center" ><input type="button" name="Submit" onclick="javascript:history.back(-1);" value="返回上一页"> </h1>

</body>

</html>






第一张图查询张三个人信息 查询结果为空
第二张图未输入查询信息 查询到表的全部内容
...全文
333 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvdoubin 2019-01-20
  • 打赏
  • 举报
回复
我网页用的是gb2312,我重建的库,然后库的编码设成了gb2312,但结果还是只能查询到英文名字的个人信息,中文的还是不行,就感觉数据库接收不到这个中文参数一样,我已经对name进行重新的转码再编码了,不知道到底怎么回事
吉普赛的歌 2019-01-20
  • 打赏
  • 举报
回复
改 utf-8 再试下?
lvdoubin 2019-01-20
  • 打赏
  • 举报
回复
应该是数据库的编码和网页的编码不一样,我在表里加的name=英文的个人信息就能查到,但目前还是没有解决这个为问题
吉普赛的歌 2019-01-19
  • 打赏
  • 举报
回复
用 sqlprofile 跟踪一下最终执行的 sql 是什么? https://jingyan.baidu.com/article/0bc808fc22f48b1bd485b9b8.html

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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