java.sql.SQLException:无法在java servlet程序中使用executeQuery()发出数据操作语句 public类CreateAccount扩展了HttpServlet { @凌驾 受保护的void doPost(HttpServletRequest-req、HttpServletResponse-resp) 抛出ServletException、IOException{ 连接con=null; PreparedStatement pstm=null; PreparedStatement pstm1=空; PrintWriter pw=resp.getWriter(); 字符串名称=req.getParameter(“txt_名称”); String contact=req.getParameter(“txt_contact”); 字符串email=req.getParameter(“txt_email”); 字符串pin=req.getParameter(“txt_pass”); 字符串地址=req.getParameter(“txt_地址”); 字符串accType=req.getParameter(“txt_accType”); 字符串性别=请求getParameter(“radio_性别”); 字符串city=req.getParameter(“txt_city”); 字符串状态=req.getParameter(“txt_状态”); String url=“jdbc:mysql://localhost:3306/bankapp"; 字符串user=“root”; 字符串dbpass=“pass”; 试一试{ Class.forName(“com.mysql.jdbc.Driver”); con=DriverManager.getConnection(url、用户、dbpass); 字符串sql=“插入AccountDetails值(?,,,,,,,,,,,,,,,?)”; pstm=con.prepareStatement(sql); pstm.setString(1,名称); pstm固定管柱(2,触点); pstm.setString(3,电子邮件); pstm固定管柱(4,销); pstm.setString(5,地址); pstm.设置管柱(6,accType); pstm.setString(7,性别); pstm.setString(8,城市); pstm.设置字符串(9,状态); pstm.setString(10,空); pstm.setString(11,空); pstm.executeUpdate(); String sql1=“从AccountDetails中选择AccountNumber,其中电子邮件=?”; pstm1=con.preparest陈述(sql1); pstm.setString(1,电子邮件); 结果集rs=pstm.executeQuery(); int accnum=0; while(rs.next()){ accnum=rs.getInt(“accNumber”); } 写下(“亲爱的”+姓名+“感谢您在我们注册””; 写下(“你的账号是:+accnum+”); }catch(classnotfounde异常){ e、 printStackTrace(); }捕获(SQLE异常){ e、 printStackTrace(); write(“哦,我们的数据库有问题”+e+”); }最后{ 试一试{ pstm.close(); //pstm1.close(); con.close(); }捕获(SQLE异常){ e、 printStackTrace(); 写(“连接出错”+e+”); } } } }
我使用了MySQL数据库,其中“accNumber”列作为INT(10)和主键。 我尽了一切可能从结果集中得到值,但是我一次又一次地得到相同的错误。java.sql.SQLException:无法在java servlet程序中使用executeQuery()发出数据操作语句 public类CreateAccount扩展了HttpServlet { @凌驾 受保护的void doPost(HttpServletRequest-req、HttpServletResponse-resp) 抛出ServletException、IOException{ 连接con=null; PreparedStatement pstm=null; PreparedStatement pstm1=空; PrintWriter pw=resp.getWriter(); 字符串名称=req.getParameter(“txt_名称”); String contact=req.getParameter(“txt_contact”); 字符串email=req.getParameter(“txt_email”); 字符串pin=req.getParameter(“txt_pass”); 字符串地址=req.getParameter(“txt_地址”); 字符串accType=req.getParameter(“txt_accType”); 字符串性别=请求getParameter(“radio_性别”); 字符串city=req.getParameter(“txt_city”); 字符串状态=req.getParameter(“txt_状态”); String url=“jdbc:mysql://localhost:3306/bankapp"; 字符串user=“root”; 字符串dbpass=“pass”; 试一试{ Class.forName(“com.mysql.jdbc.Driver”); con=DriverManager.getConnection(url、用户、dbpass); 字符串sql=“插入AccountDetails值(?,,,,,,,,,,,,,,,?)”; pstm=con.prepareStatement(sql); pstm.setString(1,名称); pstm固定管柱(2,触点); pstm.setString(3,电子邮件); pstm固定管柱(4,销); pstm.setString(5,地址); pstm.设置管柱(6,accType); pstm.setString(7,性别); pstm.setString(8,城市); pstm.设置字符串(9,状态); pstm.setString(10,空); pstm.setString(11,空); pstm.executeUpdate(); String sql1=“从AccountDetails中选择AccountNumber,其中电子邮件=?”; pstm1=con.preparest陈述(sql1); pstm.setString(1,电子邮件); 结果集rs=pstm.executeQuery(); int accnum=0; while(rs.next()){ accnum=rs.getInt(“accNumber”); } 写下(“亲爱的”+姓名+“感谢您在我们注册””; 写下(“你的账号是:+accnum+”); }catch(classnotfounde异常){ e、 printStackTrace(); }捕获(SQLE异常){ e、 printStackTrace(); write(“哦,我们的数据库有问题”+e+”); }最后{ 试一试{ pstm.close(); //pstm1.close(); con.close(); }捕获(SQLE异常){ e、 printStackTrace(); 写(“连接出错”+e+”); } } } },java,mysql,servlets,jdbc,Java,Mysql,Servlets,Jdbc,我使用了MySQL数据库,其中“accNumber”列作为INT(10)和主键。 我尽了一切可能从结果集中得到值,但是我一次又一次地得到相同的错误。 请帮我盖的。就像名字暗示的那样executeQuery()用于查询数据。对于插入和更新,您需要使用executeUpdate() 您的错误来自于将pstm1和pstm变量混淆的简单输入错误。小心那些代码。请添加堆栈跟踪。 public class CreateAccount extends HttpServlet { @Override pro
请帮我盖的。就像名字暗示的那样
executeQuery()
用于查询数据。对于插入和更新,您需要使用executeUpdate()
您的错误来自于将
pstm1
和pstm
变量混淆的简单输入错误。小心那些代码。请添加堆栈跟踪。
public class CreateAccount extends HttpServlet
{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Connection con=null;
PreparedStatement pstm=null;
PreparedStatement pstm1=null;
PrintWriter pw=resp.getWriter();
String name=req.getParameter("txt_name");
String contact=req.getParameter("txt_contact");
String email=req.getParameter("txt_email");
String pin=req.getParameter("txt_pass");
String address=req.getParameter("txt_address");
String accType=req.getParameter("txt_accType");
String gender=req.getParameter("radio_gender");
String city=req.getParameter("txt_city");
String state=req.getParameter("txt_state");
String url="jdbc:mysql://localhost:3306/bankapp";
String user="root";
String dbpass="pass";
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url, user, dbpass);
String sql="INSERT INTO AccountDetails VALUES(?,?,?,?,?,?,?,?,?,?,?)";
pstm=con.prepareStatement(sql);
pstm.setString(1, name);
pstm.setString(2, contact);
pstm.setString(3, email);
pstm.setString(4, pin);
pstm.setString(5, address);
pstm.setString(6, accType);
pstm.setString(7, gender);
pstm.setString(8, city);
pstm.setString(9, state);
pstm.setString(10, null);
pstm.setString(11, null);
pstm.executeUpdate();
String sql1="SELECT accNumber FROM AccountDetails WHERE email=?";
pstm1=con.prepareStatement(sql1);
pstm.setString(1, email);
ResultSet rs=pstm.executeQuery();
int accnum=0;
while(rs.next()){
accnum=rs.getInt("accNumber");
}
pw.write("<html><head>Dear "+name+" Thankyou For Registering With Us</br>");
pw.write("Your Account Number Is :"+accnum+"</head></html>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
pw.write("<html><head>Oops Something Wrong With Our Database"+e+"</head></html>");
}finally {
try {
pstm.close();
//pstm1.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
pw.write("<html><head>Something Wrong With Connection"+e+"</head></html>");
}
}
}
}