是一个别人论坛的代码,学习中,不知道SQL中加入“?” 是怎么的用法?参数如何传递? 请教!
private static final String SQL_LOAD = "SELECT I_PARENTID, V_BOARDNAME, V_README, V_INDEXIMG, I_DISPLAYORDER"
+ ", V_SKINPATH, I_COLORID, C_ADDTIME, I_ATTACHMAXSIZE, V_ATTACHALLOWMIME"
+ ", I_MESSAGEMAXSIZE, I_STATUS"
+ " FROM "
+ DbForumFactory.DB_PREFIX_MODULE
+ "BOARD"
+ " WHERE I_BOARDID = ?";
private static final String SQL_STORE = "INSERT INTO "
+ DbForumFactory.DB_PREFIX_MODULE
+ "BOARD"
+ "(I_PARENTID, V_BOARDNAME, V_README, V_INDEXIMG, I_DISPLAYORDER"
+ ", V_SKINPATH, I_COLORID, C_ADDTIME, I_ATTACHMAXSIZE, V_ATTACHALLOWMIME"
+ ", I_MESSAGEMAXSIZE, I_STATUS, I_BOARDID)"
+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
---------------------------------------------------------------
哪种语言的代码?
我猜测是占位符号。也就是说,在稍后的代码中再添加参数。.net中就有类似的用法。
---------------------------------------------------------------
预留参数位
---------------------------------------------------------------
预留参数位啊!要用时再对应位传参就行了!
---------------------------------------------------------------
预留参数位,到时候再设值就可以了!
---------------------------------------------------------------
这个是两种不同的数据库操作类:statement 和preparestatement;
前者在SQL语句中直接加入参数同时执行语句:
m_ip="192.168.1.1"
Statement st_insert_ip.executeQuery("select * from table1 where dst_ip='"+m_ip+"'");
后者先预编译一下SQL语句然后再在执行的时候传入参数:
PrepareStatement pst = conn.prepareStatement("select * from table1 where route_ip=? and inf=? "); //预编译SQL语句
pst.setString(1,"192.168.1.111");//传入参数
pst.setString(2,"2");
pst.executeQuery();//执行语句
---------------------------------------------------------------
JDBC没法用。我用的是JDBC+MYSQL4.1的,这个预留的方法好像对MYSQL没法用。不过直接传DLL的SQL语句进去就行了。
http://mascotzhuang.go.nease.net/