首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring JDBC和Plain JDBC的区别?

Spring JDBC和Plain JDBC的区别?
EN

Stack Overflow用户
提问于 2012-02-28 01:47:21
回答 5查看 27.7K关注 0票数 23

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

EN

回答 5

Stack Overflow用户

发布于 2012-02-28 02:09:01

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

代码语言:javascript
复制
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();
}

不过,当尝试使用资源时,效果会更好:

代码语言:javascript
复制
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

代码语言:javascript
复制
final int c = new JdbcTemplate(ds).queryForInt("SELECT COUNT(*) FROM Orders");

此外,Spring JDBC还提供了异常转换(不再需要检查SQLException和数据库/方言之间的差异)和简单的对象关系映射功能。

票数 33
EN

Stack Overflow用户

发布于 2012-02-28 02:02:33

Spring JDBC增值功能由Spring框架的顶层JDBC层提供

定义连接parameters

  • Open iteration

  • Process

  • 指定语句

  • 准备并执行语句

  • 设置循环以迭代结果(如果有)

  • 为每个事务执行工作

  • 关闭连接

基本上,您不需要担心基础设施/管道代码的管理和痛苦,而只需要担心数据及其到对象的映射。

Spring利用模板模式隐藏所有低级细节,同时提供扩展钩子来扩展和使用JDBC。

此外,还有一个定义良好的数据库异常API,与低级JDBC API提供的异常层次结构相比,它对开发人员非常友好

票数 2
EN

Stack Overflow用户

发布于 2017-11-07 15:04:25

1.)Spring jdbc模块是jdbc技术之上的一个抽象层,它避免了jdbc编程中使用的模板代码。2.)Spring ORM模块是顶级ORM工具的抽象层。3.)当使用像hibernate这样的ORM工具时,我们有一个锅炉板代码,这个spring ORM层避免了ORM工具的模板代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9469643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档