春季JDBC与普通JDBC之间的区别?

2022-09-01 15:39:52

Spring JDBC与JDBC的主要区别是什么?


答案 1

让我向您展示一些使用JDBC的简单示例:

final Connection connection = ds.getConnection();
try {
    final Statement statement = connection.createStatement();
    try {
        final ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Orders");
        try {
            resultSet.next();
            final int c = resultSet.getInt(1);
        } finally {
            resultSet.close();
        }
    } finally {
        statement.close();
    }
} finally {
    connection.close();
}

不过,当尝试使用资源时,情况要好得多:

try (
        Connection connection = ds.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Orders");
) {
    resultSet.next();
    final int c = resultSet.getInt(1);
}

当然,您可以提取通用代码并使用模板方法设计模式。实际上,你会重塑:JdbcTemplate

final int c = new JdbcTemplate(ds).queryForInt("SELECT COUNT(*) FROM Orders");

此外,Spring JDBC还提供了异常翻译(不再检查数据库/方言之间的差异)和简单的ORM功能。SQLException


答案 2

1.) Spring jdbc 模块是 jdbc 技术之上的一个抽象层,该层避免了 jdbc 编程中使用的样板代码。2.) Spring ORM模块是ORM工具顶部的抽象层。3.)当再次使用ORM工具时,我们再次使用冬眠,我们有一个锅炉板代码,这个春天的ORM层避免了ORM工具的锅炉板代码。


推荐