尘心
  • 0
  • 新人请关照

jdbc中使用数据库查询语言遇到的问题

"select * from where ? = ?"
这种写法或者
String sql="select * from where "+getType+" = ?";
这种写法可行吗,可行的话,gettype应该定义为什么类型的数据才能正常查询,新手不是很明白,望大佬们指点,说的越简单越好。

阅读 261
评论 2019-09-24 提问
    3 个回答
    加林
    • 144

    select * from 表 where ? = ? 这种不行, 第一个参数字段名肯定是字符串, sql会加单引号
    第二个通过字符串拼接可以, getType的值应该是表中存在的字段

    评论 赞赏 2019-09-24
      scherman
      • 3.1k

      select * from 表 where ? = ?这个写法可以,不过应该没什么意义,它会要你提供两个参数,然后比较两个参数的值,这肯定不是你想要的结果。

      String sql="select * from where "+getType+" = ?";是可以的,不过getType必须是字符串类型,它的值表示一个字段名。但我估计这不是你想要的。

      你想要实现什么样的查询,没有说清楚。

      评论 赞赏 2019-09-24

        首先你得理解你写的代码是干什么的,你现在需要使用jdbc进行数据库查询对吧?怎么进行数据库查询?写一段sql语句,sql语句写好以后怎么办呢?需要执行这段sql语句,怎么执行呢?jbdc给你写好了接口,使用jdbc创建connection,再使用创建的连接(connection)创建statement,statement执行sql语句。
        综上,使用jdbc进行数据库查询,你只需要写好sql语句就好,在java代码里你当然是通过String存储sql语句,难道你可以把“select * from table where col=xx”存储到int,double类型,所以你的gettype肯定是个字符串啊。
        注意事项:select * from student where c_name='张三' sql语句中的varchar字段值一定要使用英文单引号''

        评论 赞赏 2019-09-24
          撰写回答

          登录后参与交流、获取后续更新提醒