主题:[讨论]與java連接數據庫有關!!!!
dan1121
[专家分:30] 发布于 2007-11-19 15:45:00
用於模糊查詢,其預編譯語句該怎麼去寫!!!
用PreparedStatement語句寫!!
例如:
String str="abc"
我要查詢以 str 開頭的字符串;
最后更新于:2007-11-19 15:47:00
回复列表 (共5个回复)
沙发
holly2k [专家分:120] 发布于 2007-11-19 16:22:00
这些好象是SQL语言的东西,我记得好象可以这么写SQL:select * from * where str LIKE "abc%";
板凳
dan1121 [专家分:30] 发布于 2007-11-19 16:29:00
寫是這樣寫的,如果用PreparedStatement命令
select * from * where str like ?
這裡應該是個問號吧,這個參數該怎麼傳???如果直接傳abc又不對
象從文字框獲得的數據你不可能就先在那加上%,
該怎麼處理??
3 楼
sjhlovejava [专家分:1690] 发布于 2007-11-19 19:34:00
使用 setString 方法,然后再执行查询就可以了.
setString
void setString(int parameterIndex,
String x)
throws SQLException将指定参数设置为给定 Java String 值。在将此值发送给数据库时,驱动程序将它转换成一个 SQL VARCHAR 或 LONGVARCHAR 值(取决于该参数相对于驱动程序在 VARCHAR 值上的限制的相对大小)。
参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推。
x - 参数值
4 楼
Mrnight [专家分:270] 发布于 2007-11-20 00:11:00
PreparedStatement st=con.createPreparedStatement("select * from * where str like ? ");
st.setString(1,"abc");
5 楼
holly2k [专家分:120] 发布于 2007-11-20 09:27:00
象从文本框获得数据的话,你完全可以写PreparedStatement的setString()之前组装好String,用接受到的String+"%",再将它Set进问号里不就可以的吗
我来回复