编辑4:
我不知道为什么,但是我在下面使用的结构不起作用。我不得不修改我在 java2s 网站上找到的一个文件,它叫做 TableFromDatabase,然后将 JTextFields 设为公共静态,然后在 FrmMovimento 等中实例化 TableFromDatabase 类:
TableFromDatabase frame = new TableFromDatabase();
jDesktopPane2.add(frame);
frame.show();
我还修改了 TableFromDatabase 行
frame.setDefaultCloseOperation( EXIT_ON_CLOSE_ );
到
frame.setDefaultCloseOperation( DISPOSE_ON_CLOSE );
原帖:
在这部分程序中,JInternalFrame 文件 FrmMovimento,我制作了一个名为 Visualizar(“视图”)的按钮。根据我们在文本字段中键入的内容,它必须显示用户定义的间隔。
有这些 JTextField: 代码来自:_到:_ 资产:_
还有这些 JFormattedTextFields: 日期从:_到:_
例如,如果我使用另一个 SELECT 语句选择所有寄存器,则 JInternalFrame FrmListarMov 的 JDesktopPane 中已经出现了寄存器。但如果我像在标题中那样输入:
public List<MovimentoVO> Lista() throws ErroException, InformacaoException{
List<MovimentoVO> listaMovimento = new ArrayList<> ();
try {
MySQLDAO.getInstancia().setAutoCommit(false);
try (PreparedStatement stmt = MySQLDAO.getInstancia().prepareStatement(
"SELECT * FROM Cadastro2 WHERE Codigo BETWEEN "+ txtCodDeMov +" AND "+ txtCodAteMov +";") {
ResultSet registro = stmt.executeQuery();
while(registro.next()){
MovimentoVO Movimento = new MovimentoVO();
Movimento.setCodDeMov(registro.getInt(1));
Movimento.setCodAteMov(registro.getInt(2));
Movimento.setAtivoMov(registro.getString(3));
Movimento.setDataDeMov(registro.getString(4));
Movimento.setDataAteMov(registro.getString(5));
listaMovimento.add(Movimento);
}
}
} catch (SQLException ex) {
throw new ErroException(ex.getMessage());
} catch (InformacaoException ex) {
throw ex;
}
return listaMovimento;
}
在 SELECT 行中,txtCodDeMov 是我如何命名“Code from”的 JTextField,而 txtCodAtemov 是我如何命名第一个“To”的 JTextField。
哦,我在 Linux Mint 12 64 位中使用 NetBeans 7.1.2(内部版本 201204101705)和 MySQL Ver 14.14 Distrib 5.1.63。
编辑:实际上,它是 MovimentoVO2、MovimentoDAO2 等,因为我做了两个文件,一个带有 setCodDeMov 和 setCodAteMov 等,另一个只有 setCodigo、setAtivo 和 setData。抱歉,我在使用这些技术方面还是有点菜鸟。
从表 Cadastro2 中,只有主键 Codigo 将用于查询。稍后我们将创建另一个表,我们将在其中注册资产的买卖,因此它们将具有资产类型和移动日期,这将被添加到 SELECT ... BETWEEN ... AND 我们需要。到目前为止,我只需要了解 Java 如何获取我在 JTextField 中键入的值并将其放入 SELECT 命令中。
EDIT2:在客户端注册屏幕中,查询按钮工作100%,如下所示。但这是另一种情况,因为在这种情况下,如果找到具有指定代码(表 Cadastro2 中的主键)的寄存器,则按钮事件会使所有 JTextField 完成。现在我要做的是生成一个包含间隔中所有寄存器的表。
EDIT3:我认为正确的术语是报告生成。我听说过 iReport 和 Jasper Reports,但我从未使用过它们。考虑到这个项目必须在 12 月在大学里提交,有时间学习这两个工具吗?当我还在学习 Java 时,这会是一个糟糕的举动吗?起初我认为是,所以我只在 Netbeans 上做所有事情。