pstmt = conn.prepareStatement("select * from TBM_STUDENT where STUDENT_NO =?");
pstmt.setString(1,sno)
rs = pstmt.executeQuery();其中sno是传进来的String:"004",这样执行后为什么检索不到?将问号改成‘004’试一下是可以检索的。为什么会出现这样的情况?
pstmt.setString(1,sno)
rs = pstmt.executeQuery();其中sno是传进来的String:"004",这样执行后为什么检索不到?将问号改成‘004’试一下是可以检索的。为什么会出现这样的情况?
st.SetInt(); //表示是int 参数
st.SetString() //是String 参数
你确定你参数是String 类型的吗?
这也是预编译语句的好处,它会首先检传入的参数的合法性,认为004不满足char(4).
其实真正执行SQL时是可以通过的,但在预编译语句还没有执行SQL前参数检查就已经拦截掉了.