JAVA,JDBC中使用PrepareStatement进行查询,如何去除setString时自动添加的引号?

问题描述

在学习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());

查看全部
qq_39117858
jlcfighting
2020/04/16 17:12
  • java
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

2个回复