【问题标题】:Java Search Database to TableJava 搜索数据库到表
【发布时间】:2018-09-30 05:46:10
【问题描述】:

我无法在数据库中搜索记录,当我向TextField 写入文本时,TableModel 正在加载但不在数据库中搜索并且表是清晰的。

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {                                        

    jTabbedPane1.setSelectedIndex(2);
     try {

        File currDir= new File ("Baza.db");
        String sc = currDir.getAbsolutePath();
         sc = sc.substring(0, sc.length());

         String url = "jdbc:sqlite://"+sc;
         Connection conn = DriverManager.getConnection(url);
         String wyszukaj =" SELECT * FROM WydatkiStale WHERE id_WydatekStaly =?";
         PreparedStatement pst  = conn.prepareStatement(wyszukaj);
         pst.setString(1,"value");
         ResultSet rs = pst.executeQuery();


   jTable3.setModel(DbUtils.resultSetToTableModel(rs));

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, e);
    } 
}

application window view

【问题讨论】:

    标签: java database search database-connection


    【解决方案1】:

    问题很可能在这里:

    pst.setString(1,"value");
    

    您在每个数据库查询中使用硬编码值,但您应该使用从java.awt.event.KeyEvent evtTextField 内容动态获取的值

    【讨论】:

    • pst.setString(1, jTextField1.getText()); 不工作
    • 既然列被称为id_WydatekStaly(id 前缀)也许它是数字的?所以您可能需要将jTextField1.getText() 转换为数字并设置为pst.setLong(1, Long.parseLong(jTextField1.getText()));
    • 是的,id_WydatekStaly 列是整数,我将 TextField 转换为 int 并且没问题,谢谢!
    • 很高兴为您提供帮助,如果有用请采纳
    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2014-06-04
    • 2010-09-22
    • 2014-06-15
    • 2021-10-28
    相关资源
    最近更新 更多