servlet类修改数据库 50

//3、构造语句PreparedStatementps=conn.prepareStatement(sql);//4、执行查询Stringsql=("updatestud... //3、构造语句

PreparedStatement ps = conn.prepareStatement(sql);

//4、执行查询

String sql=("update student set id= ?,name=? where Student address=?");

PreparedStatement stm=conn.prepareStatement(sql);

stm.setString(1,id);
stm.setString(2,name);

stm.setString(3,address);

stm.executeUpdate();

statement.close();

conn.close();
就是PreparedStatement 报错 ,呃、、你们看,把我写错的地方改过来吧,我实在无语了,刚接触这些,实在无语。哪错,就改哪。
展开
 我来答
qwer900711
2012-04-11 · TA获得超过2825个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:472万
展开全部
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//防止乱码
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
//把要修改成的值接收
String name=request.getParameter("name");
String address=request.getParameter("address");
String sid=request.getParameter("sid");

//写链接数据库代码,获得conn对象,因不知道你链接的是数据库
……

//去数据库修改
String sql="update student set name= ?,address=? where Studentid=?";
PreparedStatement stm=conn.prepareStatement(sql);
stm.setString(1,name);
stm.setString(2,address);
stm.setString(3,sid);
stm.executeUpdate();

//修改好了,下一部一般是跳转页面。
response.sendRedirect("success.jsp");
}

但是一般不推荐这么写,可以用MVC模式,写一个实体类封装传过来的数据,然后把连接数据库还有修改的方法写到Dao层里面去,然后在servlet中直接调用dao层进行处理。这次层次清晰很多,方便维护和修改。也不用每次去获得连接对象了(很费资源)。

补充:
我觉得你查一下2个地方:
1.把获取到3个值进行输出,看是否获得成功并正确。
2.有个地方不是太明白,update student set id= ?,name=? where Student address=?,这句话的意思是根据地址找出学生,然后把ID和name给改了,是不是写错了?一般是根据id查。
顺家有小孩
2012-04-12 · 超过17用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:23.4万
展开全部
,PreparedStatement ps = conn.prepareStatement(sql);
PreparedStatement stm=conn.prepareStatement(sql);
这两句重复了,但代码不全,不知你这句PreparedStatement ps = conn.prepareStatement(sql);
想表达什么意思
更多追问追答
追问
构造这个语句的啊、、、重复的部分,我删除了一个。
追答
//4、执行查询

String sql=("update student set id= ?,name=? where Student address=?");

PreparedStatement stm=conn.prepareStatement(sql);

stm.setString(1,id);
stm.setString(2,name);

stm.setString(3,address);

stm.executeUpdate();

statement.close();

conn.close();
//再看看你的id的类型是不是String类型的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yu165683
2012-04-12 · TA获得超过961个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:99.8万
展开全部
sql语句出错,我想你应该要做的是根据学生ID来修改学生的名字和地址,那么应该这样写:
update student set address= ?,name=? where id=?
stm.setInt(0,id);
stm.setString(1,name);

stm.setString(2,address);//从0开始
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QinQinMeCC
2012-04-11 · TA获得超过2017个赞
知道小有建树答主
回答量:808
采纳率:100%
帮助的人:565万
展开全部
那你来接数据库成功了没有? 连接的是什么数据库?
追问
肯定成功了啊!学生信息表数据库,做一个servlet类来实现可以修改里面的信息,懂我意思?
追答
你个撮把子  你数据库 Id是什么类型啊 ! 是varchar 吗? 是就用 String 不是就用setInt  OK ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友60ba0a5
2012-04-11 · TA获得超过231个赞
知道小有建树答主
回答量:544
采纳率:100%
帮助的人:213万
展开全部
是修改还是新增还是删除
更多追问追答
追问
修改,做一个servlet类来实现可以修改数据库里面的信息。比如修改数据库里面的姓名、地址之类的,用servlet来实现。构造一个update语句我不知道具体怎么写。。。
追答
sql update user set name=?,address=? where userid=?
假如是上边的那个sql语句
那么不在dao中写一个执行修改的方法,然后在servlet中进行调用就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式