首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetBeans无法检测从OracleXE11g创建的数据

NetBeans无法检测从OracleXE11g创建的数据
EN

Stack Overflow用户
提问于 2014-01-26 08:00:00
回答 1查看 42关注 0票数 0
代码语言:javascript
复制
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    try {
        String a = jTextField1.getText().trim();
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "SYSTEM", "tiger");
        PreparedStatement pst = conn.prepareStatement("Select * from EMS.EMP where 'ENo'=?");
        pst.setString(1, a);
        ResultSet r = pst.executeQuery();
        String s = "Status:";
        if (r.next()) {
            s = s + "\nName: " + r.getString(2);
            s = s + "\nAddress: " + r.getString(3);
            s = s + "\nDesignation: " + r.getString(4);
            s = s + "\nSSN: " + r.getString(5);
            s = s + "\nDepartment Number: " + r.getString(6);
            s = s + "\nBasic Pay: " + r.getString(7);
        } else
            s = s + "Record is not found";
        conn.close();
        JOptionPane.showMessageDialog(this, s);
    } catch (Exception e) {
        System.out.println(e);
    }
}

这是我搜索特定员工详细信息的代码片段。

但是我得到的是,即使记录实际上存在于oracle数据库表中,也没有找到作为输出。

这是我的第一个项目,如果能提供任何帮助,我们将不胜感激。

我遗漏了代码行吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-26 12:38:38

我认为错误出现在SQL字符串中:

代码语言:javascript
复制
    "Select * from EMS.EMP where 'ENo'=?"

如果分配给bind参数的值是string ENo,则这将返回EMS.EMP中的所有内容,而没有其他情况。

原因是,在SQL中,'ENo'是字符串文本,它的意思是“只有文本ENo”。我设想您的表中有一个名为ENo的列,您希望通过该列中的值进行筛选。在这种情况下,您应该删除单引号:

代码语言:javascript
复制
    "Select * from EMS.EMP where ENo=?"

或者使用双引号(取决于表的创建方式):

代码语言:javascript
复制
    "Select * from EMS.EMP where \"ENo\"=?"

( ENo周围的双引号需要反斜杠-转义,因为它们在Java中。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21361107

复制
相关文章

相似问题

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