小菜jsp里从表单数据更新数据库总出异常,大家帮忙。

javaxiaofans 2006-03-14 08:53:20
<%@ page contentType="text/html; charset=gb2312" language="java" pageEncoding="UTF-8"%>
<jsp:useBean id="db" class="db.Datebase" scope="page"/>
<%
String username = new String(request.getParameter("username").getBytes("ISO_8859_1"),"GBK");
String zhiye = new String(request.getParameter("zhiye").getBytes("ISO_8859_1"),"GBK");
String age = request.getParameter("age");
String weizhi = new String(request.getParameter("weizhi").getBytes("ISO_8859_1"),"GBK");
String aihao = new String(request.getParameter("aihao").getBytes("ISO_8859_1"),"GBK");
String biancheng = new String(request.getParameter("biancheng").getBytes("ISO_8859_1"),"GBK");
String qq = request.getParameter("qq");
String xingbie = new String(request.getParameter("xingbie").getBytes("ISO_8859_1"),"GBK");
String xingzuo = new String(request.getParameter("xingzuo").getBytes("ISO_8859_1"),"GBK");
String Msn = request.getParameter("msn");
String Email = request.getParameter("email");
String lianxifangshi = new String(request.getParameter("lianxifangshi").getBytes("ISO_8859_1"),"GBK");
String sql = "update 档案表 set 姓名 = '"+username+"',职业 = '"+zhiye+"',年龄 = '"+age+"',位置 = '"+weizhi+"',爱好 = '"+aihao+"',编程 = '"+biancheng+"',QQ = '"+qq+"',性别 = '"+xingbie+"',星座 = '"+xingzuo+"',Msn = '"+Msn+"',Email = '"+Email+"',联系方式 = '"+lianxifangshi+"' ;";
if(db.updateSql(sql)==true)
out.println("修改成功~");
db.closeConnection();
%>
小菜要更新数据库,数据库里一个表,所有字段都是默认文本。为什么这样还写不进去,总抛java.lang.NullPointerException异常。同样方法从数据库里读数据正常啊。
还有问一下,从表单接受数据更新数据库,这样写好吗?还有别的写法吗?小菜初学,各位GG多指教。
(当然表单传来的数据安全验证暂时不考虑在内)。
...全文
120 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgdb 2006-03-15
  • 打赏
  • 举报
回复
这个么,估计是哪个request.getParameter是null,然后再getBytes,当然抛异常了,用try catch看一下,究竟是哪里出的错
javaxiaofans 2006-03-15
  • 打赏
  • 举报
回复
无条件不是也可以更新嘛.
ishfox 2006-03-14
  • 打赏
  • 举报
回复
String sql = "update 档案表 set 姓名 = '"+username+"',职业 = '"+zhiye+"',年龄 = '"+age+"',位置 = '"+weizhi+"',爱好 = '"+aihao+"',编程 = '"+biancheng+"',QQ = '"+qq+"',性别 = '"+xingbie+"',星座 = '"+xingzuo+"',Msn = '"+Msn+"',Email = '"+Email+"',联系方式 = '"+lianxifangshi+"' ;";

以什么条件update??
javaxiaofans 2006-03-14
  • 打赏
  • 举报
回复
谢谢楼上的建议,但小菜刚学。想用jsp+javabean来实现。
dewdrop 2006-03-14
  • 打赏
  • 举报
回复
抛java.lang.NullPointerException异常--估计是你的db==NULL吧

至于你就直接在jsp里对数据库表进行更新不是鼓励的做法
现在比较流行的是MVC结构,也就是说jsp最好就只有View的功能,java代码尽量的少写。

对于表的更新,最好是取出表单的内容传到服务器,由servlet调用专门的javabean或是用ejb,hibernate等更新为好
javaxiaofans 2006-03-14
  • 打赏
  • 举报
回复
这是简单的数据库javabean
package db;

import java.sql.*;

public class Datebase {
Connection con;
ResultSet rs;
Statement stmt;

public Datebase(){
// 定义连接类型及连接数据库 ACCESS
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bookbase.mdb";
con=DriverManager.getConnection(strurl) ;
stmt=con.createStatement();

}

// 异常抛出
catch(Exception e)
{ System.out.println(e); }
}
// 定义数据库执行返回值 RS;
public ResultSet getResult(String strSQL)
{
try{
rs=stmt.executeQuery(strSQL);
return rs;
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
return null;
}
catch(NullPointerException e)
{
System.out.println(e.toString());
return null;
}

}
// 定义数据库修改保存类
public boolean updateSql(String strSQL)
{
try{
stmt.executeUpdate(strSQL);
con.commit();
return true;

}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
return false;
}

}

//定义关闭数据库类
public void closeConnection()
{
try
{
stmt.close();
con.close();
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
}

}

81,122

社区成员

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

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