问题描述
在学习JDBC中PrepareStatement,想实现一个需求:
输入列名称,返回查询得到的列。
其实就是想构造SQL语句:
select id from websites;
但是使用setNString(1,"id");得到的是
select ‘id’ from websites;
希望有大佬能告知如何主动去掉默认的单引号,或者有其他方式来实现这个需求,比如同时想查多个列的时候
出现问题的语句段:
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//1、连接数据库
conn = JDBCUtils.getConnection();//自己写的登录类
//2、执行语句
String sql = "SELECT "+"?"+" FROM websites";
//"SELECT id, name, url FROM websites"
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"id");
pstmt.setNString(1,"id");
rs = pstmt.executeQuery();
//输出SQL语句
System.out.println(pstmt.toString());