第一次使用PreparedStatement,却出现org.apache.jasper.JasperException: Exception in JSP: /g_gate/gGate/Enrol/EnrolOut.jsp的错误,请问应该如何解决,万分感谢~~
<%
String sender1=request.getParameter("sender1");
String sender2=request.getParameter("sender2");
String sfrom="[email protected]";
String strInsert="";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:db1","sa",null);
PreparedStatement myStatement1 = conn.prepareStatement("insert into email (sfrom,sto1,sto2) values ('"+sfrom+"','"+sender1+"','"+sender2+"')");
myStatement1.setString(1,sfrom);
myStatement1.setString(2,sender1);
myStatement1.setString(3,sender2);
myStatement1.executeUpdate();
myStatement1.close();
%>
<%
String sender1=request.getParameter("sender1");
String sender2=request.getParameter("sender2");
String sfrom="[email protected]";
String strInsert="";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:db1","sa",null);
PreparedStatement myStatement1 = conn.prepareStatement("insert into email (sfrom,sto1,sto2) values ('"+sfrom+"','"+sender1+"','"+sender2+"')");
myStatement1.setString(1,sfrom);
myStatement1.setString(2,sender1);
myStatement1.setString(3,sender2);
myStatement1.executeUpdate();
myStatement1.close();
%>
PreparedStatement myStatement1 = conn.prepareStatement("insert into email (sfrom,sto1,sto2) values (?,?,?)");
myStatement1.setString(2,sender1);
myStatement1.setString(3,sender2); 这样应该可以了 你试一下
2、
PreparedStatement myStatement1 = conn.prepareStatement("insert into email (sfrom,sto1,sto2) values ('"+sfrom+"','"+sender1+"','"+sender2+"')");看到这样拼凑的sql就头疼。。 preparedstatement 能动态绑定参数 所以楼主不必那么麻烦
使用下面语句:PreparedStatement ps = conn.prepareStatement("insert in email (sfrom,sto1,sto2) values(?,?,?)");
ps.setString(1,sfrom);
ps.setString(2,sender1);
ps.setString(3,sender2);
//【因为上面的三个sfrom和sender1和sender2,都是String类型】int i = ps.executeUpdate();
if(i == 0){
//SQL未执行成功
}
if(ps!=null){
ps.close();
//捕获异常
}
if(conn!=null){
conn.close();
//捕获异常
}手动打代码有错误请谅解吧、ps.setXXXX【xxxx为类型】 为第几个【?】 绑定参数。
if(i == 0){
//SQL未执行成功
}一般都是判断成功的
if(i > 0){
//SQL执行成功
}else{
//SQL执行失败
}