[Microsoft][ODBC SQL Server Driver][SQL Server]列名 '大大' 无效。
2011-4-22 15:01:22 org.apache.struts.chain.commands.AbstractExceptionHandler execute
警告: Unhandled exception
java.lang.NullPointerException
at com.dao.UserDAO.UpdateUser(UserDAO.java:156)
at com.action.UserAction.ModifyUser(UserAction.java:117)
at com.action.UserAction.execute(UserAction.java:39)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.action.CharFilter.doFilter(CharFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
2011-4-22 15:01:22 org.apache.struts.chain.commands.ExceptionCatcher postprocess这里说列名无效,可是这个'大大'是值啊,不是列名,列名是username,我向数据库插入数据是正常,可是要修改数据的时候就报这个异常,下面是修改用户信息的部分代码
/*更新用户信息*/
public boolean UpdateUser(UserForm userForm){
/*首先查询该用户名称系统中是否已经存在*/
ChStr chStr = new ChStr();
String sql = "SELECT * FROM userinfo where username='"
+ chStr.filterStr(userForm.getUsername()) + "' and username<>" + userForm.getUsername();
ResultSet rs = conn.executeQuery(sql);
try {
/* 如果存在该用户的记录 */
if (rs.next()) {
this.errMessage = "该用户已经存在!";
return false;
}
} catch (SQLException ex) {
this.errMessage = "查询用户发生了错误!";
return false;
} finally {
conn.close();
}
StringBuffer sb = new StringBuffer();
sb.append("update userinfo set username='");
sb.append(userForm.getUsername()).append("',password='");
sb.append(userForm.getPassword()).append("',userDes='");
sb.append(userForm.getUserDes()).append("' where username=").append(userForm.getUsername());
System.out.println("修改用户信息时的SQL:"+sb.toString());
boolean ret=conn.executeUpdate(sb.toString())>0;
if(ret == false) {
this.errMessage = "修改用户信息时发生了错误!";
return false;
}
return true;
}
和修改操作的jsp页面
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ page import="com.actionForm.UserForm;"%>
<%
UserForm userForm = (UserForm) request.getAttribute("userForm");
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script>
function checkForm(form){
if(form.username.value==""){
alert("请输入用户姓名!");form.username.focus();return false;
}
if(form.userdes.value==""){
alert("请输入用户权限!");form.userdes.focus();return false;
}
}
</script>
</head>
<body> <form id="Form1" method="post" action="UserAction.do?action=modify">
<input type="hidden" name="username"
value="<%=userForm.getUsername() %>" />
<table width="600" border="0" cellpadding="0" cellspacing="0"
align="center">
<tr style="color: blue; font-size: 14px;">
<td style="height: 14px; width: 502px;">
<img src="images/edit.gif" width="14px" height="14px">
系统管理-->修改用户信息
</td>
</tr>
<tr>
<td style="height: 42px">
<br />
用户姓名:
<input name="username" type="text" id="username" size="20"
value="<%=userForm.getUsername() %>">
<br />
<br />
密 码:
<input name="password" type="text" id="password" size="20"
value="<%=userForm.getPassword() %>">
<br />
<br />
用户权限:
<input name="userdes" type="text" id="userdes" size="20"
value="<%=userForm.getUserDes() %>">
<br />
<br />
<input type="submit" value="修改" onclick="return checkForm(Form1);">
</td>
</tr>
</table>
</form>
</body>
</html>
2011-4-22 15:01:22 org.apache.struts.chain.commands.AbstractExceptionHandler execute
警告: Unhandled exception
java.lang.NullPointerException
at com.dao.UserDAO.UpdateUser(UserDAO.java:156)
at com.action.UserAction.ModifyUser(UserAction.java:117)
at com.action.UserAction.execute(UserAction.java:39)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.action.CharFilter.doFilter(CharFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
2011-4-22 15:01:22 org.apache.struts.chain.commands.ExceptionCatcher postprocess这里说列名无效,可是这个'大大'是值啊,不是列名,列名是username,我向数据库插入数据是正常,可是要修改数据的时候就报这个异常,下面是修改用户信息的部分代码
/*更新用户信息*/
public boolean UpdateUser(UserForm userForm){
/*首先查询该用户名称系统中是否已经存在*/
ChStr chStr = new ChStr();
String sql = "SELECT * FROM userinfo where username='"
+ chStr.filterStr(userForm.getUsername()) + "' and username<>" + userForm.getUsername();
ResultSet rs = conn.executeQuery(sql);
try {
/* 如果存在该用户的记录 */
if (rs.next()) {
this.errMessage = "该用户已经存在!";
return false;
}
} catch (SQLException ex) {
this.errMessage = "查询用户发生了错误!";
return false;
} finally {
conn.close();
}
StringBuffer sb = new StringBuffer();
sb.append("update userinfo set username='");
sb.append(userForm.getUsername()).append("',password='");
sb.append(userForm.getPassword()).append("',userDes='");
sb.append(userForm.getUserDes()).append("' where username=").append(userForm.getUsername());
System.out.println("修改用户信息时的SQL:"+sb.toString());
boolean ret=conn.executeUpdate(sb.toString())>0;
if(ret == false) {
this.errMessage = "修改用户信息时发生了错误!";
return false;
}
return true;
}
和修改操作的jsp页面
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ page import="com.actionForm.UserForm;"%>
<%
UserForm userForm = (UserForm) request.getAttribute("userForm");
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script>
function checkForm(form){
if(form.username.value==""){
alert("请输入用户姓名!");form.username.focus();return false;
}
if(form.userdes.value==""){
alert("请输入用户权限!");form.userdes.focus();return false;
}
}
</script>
</head>
<body> <form id="Form1" method="post" action="UserAction.do?action=modify">
<input type="hidden" name="username"
value="<%=userForm.getUsername() %>" />
<table width="600" border="0" cellpadding="0" cellspacing="0"
align="center">
<tr style="color: blue; font-size: 14px;">
<td style="height: 14px; width: 502px;">
<img src="images/edit.gif" width="14px" height="14px">
系统管理-->修改用户信息
</td>
</tr>
<tr>
<td style="height: 42px">
<br />
用户姓名:
<input name="username" type="text" id="username" size="20"
value="<%=userForm.getUsername() %>">
<br />
<br />
密 码:
<input name="password" type="text" id="password" size="20"
value="<%=userForm.getPassword() %>">
<br />
<br />
用户权限:
<input name="userdes" type="text" id="userdes" size="20"
value="<%=userForm.getUserDes() %>">
<br />
<br />
<input type="submit" value="修改" onclick="return checkForm(Form1);">
</td>
</tr>
</table>
</form>
</body>
</html>
解决方案 »
- 导出数据生成Excel后要能够弹出下载提示框
- 高分,web.xml配置文件指向首页的问题
- 求,action传入的jsp页面,要求每2分钟刷新一次,怎么做呢?
- jsp问题具体如下?
- 分页显示,点"下一页"时显示内容为空,是查询参数的问题,请教怎么传递查询参数
- jsp问题 刷新时候会重复出现提交动作怎么办
- 100份,求教,如何在jbuilder一个下,新建立一个包,然后把别的程序上的类导入使用
- 如何实现登陆后的欢迎信息!!
- 有一个textarea,在这个textarea中输入值存入数据,当从数据库中取出存入的值并显示在textarea中的时候,显示格式有问题
- 简单问题大家来捡分吧
- getClass().getGenericSuperclass(),谁能帮我解释一下什么叫超类,怎么用啊
- 测试JDBC安装测试是否成功、
+ chStr.filterStr(userForm.getUsername()) + "' and username<>'" + userForm.getUsername() +"'";
at com.action.UserAction.ModifyUser(UserAction.java:117)UserDAO的156行,
UserAction的117行,
UserAction的39行,
出错。然后调试下,就应该知道是什么错误了!!!
应该是 Statement的实例来调用执行查询或更新的操作哦
+ chStr.filterStr(userForm.getUsername()) + "' and username<>" + userForm.getUsername();
应该是
String sql = "SELECT * FROM userinfo where username='"
+ chStr.filterStr(userForm.getUsername()) + "' and username<>’" + userForm.getUsername()+"'";
为什么看着这么别扭啊?
没这么写过,都是用PreparedStatement的executeQuery方法的,这个conn怎么看怎么不想这个类型的呢?
倒是觉得像Connection的引用类型?
个人感觉这句有问题的!