在java中处理SQL CRUD查询

在java中处理SQL CRUD查询,java,sql,odbc,Java,Sql,Odbc,我正在尝试用java处理CRUD查询。到目前为止,我有两种方法 public void query(String query) { try { conn.setAutoCommit(false); rs = stmt.executeQuery(query); conn.commit(); conn.setAutoCommit(true); } catch (SQLException e) { Syst

我正在尝试用java处理CRUD查询。到目前为止,我有两种方法

public void query(String query) {
    try {
        conn.setAutoCommit(false);
        rs = stmt.executeQuery(query);
        conn.commit();
        conn.setAutoCommit(true);
    } catch (SQLException e) {
        System.out.println("cannot perform this query");
    }
}
protected void mod(String query) {
    try {
        stmt.executeUpdate(query);
    } catch (SQLException e) {
        System.out.println("cannot perform this query");
    }
}
是的,一半的代码丢失了,但这并不重要。该类有3个字段:连接conn、语句stmt和结果集rs。conn和stmt在构造函数方法中设置

我将该方法一分为二,因为作为JDBC规范的一部分插入、删除或更新表时引发了异常


代码运行良好,但我希望能够检测并使用正确的方法来处理传递到类中的查询类型。这可能吗?如果是,怎么做?

错误代码。我看不出你在哪里清理资源。这不会增加多少价值。在写我自己的之前,我会先看看SpringJDBCTemplate之类的东西。这里的目标是拥有一个控制台类型的应用程序,用户不需要学习java来操作它。如果我降低复杂度似乎更简单。我认为你在这里没有降低太多复杂度。您已经用那些try/catch块删除了一个小样板,但即使是那些也做得不好。写入该消息比从完整堆栈跟踪中获得的信息要少。“无法执行此查询”-哪个查询?不知道。打印到System.out是一个糟糕的选择;日志记录会更好。SQL资源必须是类成员。没有我能看到的池。语句和结果集应该是本地方法,并在finally块中关闭。人们一直在编写CRUD应用程序,不需要用户学习Java或SQL。如果您想检查其他-20k行代码,我们非常欢迎您使用,但我认为StackExchange的其余部分不会。