首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过用户输入键盘Java从mysql数据库中选择记录

通过用户输入键盘Java从mysql数据库中选择记录
EN

Stack Overflow用户
提问于 2015-05-02 17:27:17
回答 2查看 1.3K关注 0票数 0

我的问题是,我想从数据库中检索最低范围和最高范围之间的标记。提示用户从键盘输入最低和最高的范围。在我的sql查询中,它没有识别我从键盘输入中指定的cpa1 & cpa2范围,我遇到了一个问题。请帮帮忙。

见下面的代码:

代码语言:javascript
复制
try{
    Scanner input = new Scanner(System.in);
    System.out.print("Kindly enter the lowest CPA threshold : ");
    cpa1 = input.nextFloat();

    System.out.println();

    System.out.println("Kindly enter highest CPA threshold : ");
    cpa2 = input.nextFloat();

     rs = stt.executeQuery("SELECT * FROM student WHERE CPA BETWEEN `cpa1` and `cpa2` order by CPA asc");
     while(rs.next()){
         String id = rs.getString("student_id");
         String name = rs.getString("student_name");
         String gender = rs.getString("gender");
         float cpa = rs.getFloat("CPA");
         Date enrol = rs.getDate("enrollment_date");

         try{
             FileWriter writer = new FileWriter("StudentRange.txt");

         }catch(Exception e){
             e.printStackTrace();
         }
     }
     input.close(); 
}catch(Exception e){
    e.printStackTrace();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-02 17:30:55

代码语言:javascript
复制
rs = stt.executeQuery("SELECT * FROM student WHERE CPA BETWEEN `cpa1` and `cpa2` order by CPA asc");

不是如何使用参数构建SQL查询的。使用准备陈述

代码语言:javascript
复制
String query = "SELECT * FROM student WHERE CPA BETWEEN ? and ? order by CPA asc";
PreparedStatement ps = con.prepareStatement(query);
ps.setFloat(1, cpa1);
ps.setFloat(2, cpa2);
ps.execute(ps);
票数 2
EN

Stack Overflow用户

发布于 2015-05-02 17:30:53

那又如何呢?

代码语言:javascript
复制
rs = stt.executeQuery(String.format("SELECT * FROM student WHERE CPA BETWEEN `%f` and `%f` order by CPA asc", cpa1, cpa2);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30005320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档