String name=(String)session.getAttribute("user"); Connection con=null; PreparedStatement pst1=null;
为什么数据库不能更新呢,username和password都显示为nullConnectioncon=null;PreparedStatementpst1=null;St...
为什么数据库不能更新呢,username和password都显示为null
Connection con=null;
PreparedStatement pst1=null;
String username = request.getParameter("user");
String pwd = request.getParameter("pwd");
//String condition = "update t_user set username='"+username+"',password='"+pwd+"' where username='"+name+"'";
try{
//注册sqlserver的驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(Exception e){
out.println(e);
}
try{
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user";
String user="sa";
String password="";
//获取链接对象
con=DriverManager.getConnection(url,user,password);
//生成执行对象,执行sql语句
pst1=con.prepareStatement("update t_user set username=? password=? where username=?");
pst1.setString(1,username);
pst1.setString(2,pwd);
pst1.setString(3,name);
pst1.executeUpdate();
out.println(name);
out.println(username);
pst1.close();
con.close();
}catch(Exception e){
out.println(e);
} 展开
Connection con=null;
PreparedStatement pst1=null;
String username = request.getParameter("user");
String pwd = request.getParameter("pwd");
//String condition = "update t_user set username='"+username+"',password='"+pwd+"' where username='"+name+"'";
try{
//注册sqlserver的驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}catch(Exception e){
out.println(e);
}
try{
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user";
String user="sa";
String password="";
//获取链接对象
con=DriverManager.getConnection(url,user,password);
//生成执行对象,执行sql语句
pst1=con.prepareStatement("update t_user set username=? password=? where username=?");
pst1.setString(1,username);
pst1.setString(2,pwd);
pst1.setString(3,name);
pst1.executeUpdate();
out.println(name);
out.println(username);
pst1.close();
con.close();
}catch(Exception e){
out.println(e);
} 展开
3个回答
展开全部
首先,你的request对象肯定没有值,
第二点,你的sql语句写错了,
第三点,你的name值没有定义,
下面是我做的测试,你可以看一下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection con = null;
PreparedStatement pst1 = null;
String username = "44";//这是第一点
String pwd = "44";
String Nname = "41";//这是第二点
/*
* String username = request.getParameter("user"); String pwd =
* request.getParameter("pwd");
*/
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user", "sa", "sa");
pst1 = con
.prepareStatement("update userinfo set name=?,pwd=? where name=?");//这是第二点
pst1.setString(1, username);
pst1.setString(2, pwd);
pst1.setString(3, Nname);
pst1.executeUpdate();
out.println(name);
out.println(username);
pst1.close();
con.close();
} catch (Exception e) {
out.println(e);
}
}
第二点,你的sql语句写错了,
第三点,你的name值没有定义,
下面是我做的测试,你可以看一下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection con = null;
PreparedStatement pst1 = null;
String username = "44";//这是第一点
String pwd = "44";
String Nname = "41";//这是第二点
/*
* String username = request.getParameter("user"); String pwd =
* request.getParameter("pwd");
*/
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=user", "sa", "sa");
pst1 = con
.prepareStatement("update userinfo set name=?,pwd=? where name=?");//这是第二点
pst1.setString(1, username);
pst1.setString(2, pwd);
pst1.setString(3, Nname);
pst1.executeUpdate();
out.println(name);
out.println(username);
pst1.close();
con.close();
} catch (Exception e) {
out.println(e);
}
}
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
1.DatabaseName=user ‘user’ 是关键词用于数据库名不符合要求。
2.update t_user set username=? password=? where username=?"
更新一般用的是id如果用姓名,那如果有的人的名字在相同呢?岂不是全都改了。
3.
pst1.close();
con.close();
不能写在try里面 应写在finally里面。
2.update t_user set username=? password=? where username=?"
更新一般用的是id如果用姓名,那如果有的人的名字在相同呢?岂不是全都改了。
3.
pst1.close();
con.close();
不能写在try里面 应写在finally里面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的name空,当然select不到任何数据.所以是空的.
还有set session的时候key部分换一下看看.
如果我没记错的话,给同样的key set是,什么结果都得不到.
比如
session.setAttribute("TestParam", truename);
或者试试request.setAttribute("key", value);
session周期太长了.你一直给同样的session set.也许是我上面说的那种原因.
我不知道记没记错,
请参考
还有set session的时候key部分换一下看看.
如果我没记错的话,给同样的key set是,什么结果都得不到.
比如
session.setAttribute("TestParam", truename);
或者试试request.setAttribute("key", value);
session周期太长了.你一直给同样的session set.也许是我上面说的那种原因.
我不知道记没记错,
请参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询