当前位置: 代码迷 >> J2SE >> java prepareStatement的使用解决思路
  详细解决方案

java prepareStatement的使用解决思路

热度:89   发布时间:2016-04-24 02:02:33.0
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
  相关解决方案