我尝试建立通过或失败系统,用户输入id,number,m1,m2,m3并点击提交以获得通过或失败。我使用DAO,VO,DTO来处理结果,但我得到了#34;无效号码" SQLSYNTAXERROR。是什么原因?
public int insert(StudentBO bo)
{
try
{
//get IntialConetext
InitialContext ic = new InitialContext();
//get data sourse obj
DataSource ds = (DataSource) ic.lookup("java:/comp/env/jdbc/MyLocalDB");
//get con obj from jdbc con pool
con = ds.getConnection();
//create preapared Statement obj
ps = con.prepareStatement(STUDENT_INSERT_QRY);
ps.setInt(1,bo.getSno());
ps.setString(2, bo.getSname());
ps.setInt(3,bo.getTotal());
ps.setFloat(4,bo.getAvg());
ps.setString(5,bo.getResult());
//execute the query
int res = ps.executeUpdate();
return res;
}//try
catch(SQLException se)
{
se.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
return 0;
}//insert
这是我在数据库中的表
CREATE TABLE "SCOTT"."STUDENT_TAB"
(
"SNO" NUMBER,
"NAME" VARCHAR2(20 BYTE),
"M1" NUMBER,
"M2" NUMBER,
"M3" NUMBER
)
答案 0 :(得分:1)
您的代码设置此参数:
ps.setString(5,bo.getResult());
与STUDENT_TAB的这一栏一致:
"M3" NUMBER
这似乎是INVALID_NUMBER错误的最可能来源。您需要检查实际值bo.getResult()
返回的内容;然后检查使用setString()
对它的影响。