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 报错 ,呃、、你们看,把我写错的地方改过来吧,我实在无语了,刚接触这些,实在无语。哪错,就改哪。 展开
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 报错 ,呃、、你们看,把我写错的地方改过来吧,我实在无语了,刚接触这些,实在无语。哪错,就改哪。 展开
7个回答
展开全部
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查。
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查。
展开全部
,PreparedStatement ps = conn.prepareStatement(sql);
PreparedStatement stm=conn.prepareStatement(sql);
这两句重复了,但代码不全,不知你这句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类型的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql语句出错,我想你应该要做的是根据学生ID来修改学生的名字和地址,那么应该这样写:
update student set address= ?,name=? where id=?
stm.setInt(0,id);
stm.setString(1,name);
stm.setString(2,address);//从0开始
update student set address= ?,name=? where id=?
stm.setInt(0,id);
stm.setString(1,name);
stm.setString(2,address);//从0开始
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你来接数据库成功了没有? 连接的是什么数据库?
追问
肯定成功了啊!学生信息表数据库,做一个servlet类来实现可以修改里面的信息,懂我意思?
追答
你个撮把子 你数据库 Id是什么类型啊 ! 是varchar 吗? 是就用 String 不是就用setInt OK ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是修改还是新增还是删除
更多追问追答
追问
修改,做一个servlet类来实现可以修改数据库里面的信息。比如修改数据库里面的姓名、地址之类的,用servlet来实现。构造一个update语句我不知道具体怎么写。。。
追答
sql update user set name=?,address=? where userid=?
假如是上边的那个sql语句
那么不在dao中写一个执行修改的方法,然后在servlet中进行调用就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询