Spring JDBC和JDBC的主要区别是什么?
发布于 2012-02-28 02:09:01
让我向您展示一些使用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还提供了异常转换(不再需要检查SQLException和数据库/方言之间的差异)和简单的对象关系映射功能。
发布于 2012-02-28 02:02:33
Spring JDBC增值功能由Spring框架的顶层JDBC层提供
定义连接parameters
基本上,您不需要担心基础设施/管道代码的管理和痛苦,而只需要担心数据及其到对象的映射。
Spring利用模板模式隐藏所有低级细节,同时提供扩展钩子来扩展和使用JDBC。
此外,还有一个定义良好的数据库异常API,与低级JDBC API提供的异常层次结构相比,它对开发人员非常友好
发布于 2017-11-07 15:04:25
1.)Spring jdbc模块是jdbc技术之上的一个抽象层,它避免了jdbc编程中使用的模板代码。2.)Spring ORM模块是顶级ORM工具的抽象层。3.)当使用像hibernate这样的ORM工具时,我们有一个锅炉板代码,这个spring ORM层避免了ORM工具的模板代码。
https://stackoverflow.com/questions/9469643
复制相似问题