Spring JDBC与普通JDBC之间的区别?

use*_*214 18 java spring jdbc springsource spring-jdbc

Spring JDBC VS JDBC之间的主要区别是什么?

Tom*_*icz 24

让我向您展示一些使用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();
}
Run Code Online (Sandbox Code Playgroud)

尝试使用资源时效果要好得多:

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);
}
Run Code Online (Sandbox Code Playgroud)

当然,您可以提取常用代码并使用模板方法设计模式.有效地你重塑JdbcTemplate:

final int c = new JdbcTemplate(ds).queryForInt("SELECT COUNT(*) FROM Orders");
Run Code Online (Sandbox Code Playgroud)

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


Ole*_*eev 1

春季 JDBC?我只知道几个 Spring JDBC 模板。

它们允许您从 Spring 容器内访问 JDBC 功能,并且与普通 JDBC 相比,它们提供了一些额外的简化,例如连接管理和异常处理。

基本上,Spring 更难设置,但更容易开发,所以这一切都取决于您正在处理的问题的范围。