首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java prepareStatement的使用解决思路

2012-03-31 
java prepareStatement的使用当我执行下面的代码时:打印的结果是0------name1------name2------name3-----

java prepareStatement的使用
当我执行下面的代码时:打印的结果是
0------name
1------name
2------name
3------name
4------name
小弟不明白,为什么没有打印真正的用户的名字,而是“name”?


public class Test {
public static void main(String[] args) {
Connection con = null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//建立连接
con = DriverManager.getConnection(
"jdbc:mysql://localhost/wms_flex_db", "root", "root");
//创建语句
PreparedStatement st = con
.prepareStatement("select ? from tb_person ");
//设置
st.setString(1, "name");
//执行语句
ResultSet sets = st.executeQuery();
int count = 0;
while (sets.next()) {
System.out.print(count + "------" + sets.getString(1));
System.out.println();
count++;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

[解决办法]

探讨
PreparedStatement st = con
.prepareStatement("select ? from tb_person ");
//设置
st.setString(1, "name");
……

[解决办法]
Java code
PreparedStatement st = con.prepareStatement("select name from tb_person ");// 条件才可以用setXXX()
[解决办法]
探讨
引用:
PreparedStatement st = con
.prepareStatement("select ? from tb_person ");
//设置
st.setString(1, "name");
……


应该是因为这种参数设置方式形成了。如:select "name" from tb_person

热点排行