没有为参数号 5 设置值。
我想通过表单向数据库储存数据,出现在了没有为参数号 5 设置值 处理页面代码如下:
<%@page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.DriverManager" %>
<%@page import="
java.sql.SQLException" %>
<%@page import="java.util.Properties" %>
<%@page import="java.sql.Statement" %>
<%@page import="java.sql.CallableStatement" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>执行数据库操作</title>
</head>
<body>
<%request.setCharacterEncoding("GB18030"); %>
<jsp:useBean id="book" class="com.yang.Book"></jsp:useBean>
<jsp:setProperty property="*" name="book"/>
<%
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://127.0.0.1:1433;database=test;";
// 数据库用户名
String username = "sa";
// 数据库密码
String password = "***";
// 创建Connection连接
Connection con = DriverManager.getConnection(url,username,password);
CallableStatement cst = con.prepareCall("{?=call tb_books(?,?,?,?)}");
cst.setString(1,book.getName());
cst.setDouble(2,book.getPrice());
cst.setInt(3,book.getBookCount());
cst.setString(4,book.getAuthor());
cst.executeUpdate();
int returnValue=cst.getInt(1);
if(returnValue==1){
out.print("添加成功");
}else{
out.print("添加失败");
}
cst.close();
//关闭语句对象,释放其资源
con.close();
//关闭连接对象,释放其资源
} catch (Exception e) {
out.println("出错啦:" + e.getMessage());
}
%>
</body>
</html>
------最佳解决方案--------------------?=call tb_books(?,?,?,?
有几个问号就有几个参数,一共五个,你只给1,2,3,4赋值了,最后一个没有
------其他解决方案--------------------介意群主还是用mvc模式,把你的jsp页面展现和数据层分开下吧,好久都没看过这种在jsp中操作数据库 了!
------其他解决方案--------------------哦哦,多谢了
------其他解决方案--------------------最后一个?没有赋值。
------其他解决方案--------------------刚刚学JSP,先这样揍着先吧