数据库查询报错说没有那一行,可是明明有啊,怎么回事啊?

jiaojiao_huihui 2011-08-22 10:55:37
我的数据库表:
username name borrow1 return1
20082432 Frontpage 98网页设计 2011-08-01 2011-08-31
Object username1=session.getAttribute("username1");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from borrow where username='"+username1+"'");
String name="";
String borrow1="";
String return1="";
if (rs.next())
{
name=rs.getString("name");
borrow1=rs.getString("borrow1");
return1=rs.getString("return1");
}


报错:
org.apache.jasper.JasperException: Exception in JSP: /library/seen.jsp:26

23: String borrow1="";
24: String return1="";
25: if (rs.next())
26: {
27: name=rs.getString("name");
28: borrow1=rs.getString("borrow1");
29: return1=rs.getString("return1");

java.sql.SQLException: Column 'name' not found.
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
...全文
153 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
anhy 2011-08-22
  • 打赏
  • 举报
回复
Syntax error on tokens, delete these tokens这个错误是在什么地方报的?
chuaizicai 2011-08-22
  • 打赏
  • 举报
回复
前面说错了。。。再看看
bsh_ly 2011-08-22
  • 打赏
  • 举报
回复
很明显的 borrow 里面没有字段的名字叫name。
如果有的话, 看你用的是什么是什么数据库。
name 是不时 数据库的关键字。
如果是的话要做特殊处理的。
chuaizicai 2011-08-22
  • 打赏
  • 举报
回复
把if改成while试试
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
没有有效解决方法,这是一种可遇不可求的错误吗?
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 anhy 的回复:]

还有代码有编辑错误吗?
[/Quote]
我觉得username1没有错误,因为在其他页面也这样调用了,至于SQL语句,我在SQL中直接查了,没有错误。
而且它只报了一个:Syntax error on tokens, delete these tokens
和一个:
org.apache.jasper.JasperException: Exception in JSP: /library/seen.jsp:26

23: String borrow1="";
24: String return1="";
25: if (rs.next())
26: {
27: name=rs.getString("name");
28: borrow1=rs.getString("borrow1");
29: return1=rs.getString("return1");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: Column 'name' not found.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.library.seen_jsp._jspService(org.apache.jsp.library.seen_jsp:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
anhy 2011-08-22
  • 打赏
  • 举报
回复
还有代码有编辑错误吗?
anhy 2011-08-22
  • 打赏
  • 举报
回复
那应该是SQL或者参数username1存在问题
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 anhy 的回复:]

可能和name是关键字有关系。可以用ResultSet rs=stmt.executeQuery("select username ,name, borrow1, return1 from borrow where username='"+username1+"'");查询,然后用rs.getString(2)来取
[/Quote]
按你的方法试了,结果一样啊
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
除了报上面的错之外,还报了一个错误Syntax error on tokens, delete these tokens
anhy 2011-08-22
  • 打赏
  • 举报
回复
可能和name是关键字有关系。可以用ResultSet rs=stmt.executeQuery("select username ,name, borrow1, return1 from borrow where username='"+username1+"'");查询,然后用rs.getString(2)来取
bayougeng 2011-08-22
  • 打赏
  • 举报
回复
你检查一下是不是有全角字符啊
quxiawc 2011-08-22
  • 打赏
  • 举报
回复
rs的值为空吧 娶不到值
24K純帥 2011-08-22
  • 打赏
  • 举报
回复
少了name字段
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dong308 的回复:]

name=rs.getString("name");应该改成 name=rs.getString("username");
[/Quote]
username和 name是两个不同的变量,
Mark_MaoHUA 2011-08-22
  • 打赏
  • 举报
回复
ResultSet rs=stmt.executeQuery("select * from borrow where username='"+username1+"'");
估计你的对应有问题,建议不适用“*”
dong308 2011-08-22
  • 打赏
  • 举报
回复
name=rs.getString("name");应该改成 name=rs.getString("username");
jiaojiao_huihui 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 anhy 的回复:]

Syntax error on tokens, delete these tokens这个错误是在什么地方报的?
[/Quote]
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 10 in the jsp file: /library/seen.jsp
Generated servlet error:
Syntax error on tokens, delete these tokens
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



10 <%
11 String user="root";
12 String password="";
13 Class.forName("com.mysql.jdbc.Driver").newInstance();
14 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/library?user="+user+"& password="+password+"&characterEncoding=utf-8");
15 out.println(”数据库连接成功“);

16 Object username1=session.getAttribute("username1");
17 out.println(username1);
18 Statement stmt=conn.createStatement();
19 ResultSet rs=stmt.executeQuery("select * from borrow where username='"+username1+"'");
20 out.println("select * from borrow where username='"+username1+"'");
21 String name="";
22 String borrow1="";
23 String return1="";
24 if (rs.next())
25 {
26 name=rs.getString("name");
27 borrow1=rs.getString("borrow1");
28 return1=rs.getString("return1");
29 }
30 %>

81,094

社区成员

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

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