由于工作需要,数据交互层需要用jdbctemplate,于是学习了下,备忘:
Name:SpringJdbcTemplate
What:springjdbc封装了繁琐的jdbc直连代码,通过简单的设置,在spring下更好的进行事务管理,它抽象出了一些我们常用的操作方法,使用起来简单而高效。
Where:在数据库底层拥有复杂的表结构,以及大数据量操作时,使用起来相当的简便,尤其它是与spring相结合,如果开发框架中使用spring,那么jdbctemplate是最好的选择。
Why:使用起来简单,且高效。
How:
1、 在spring的配置文件中导包并设置datasource数据源,导包如下:
数据源如下(采用外联jdbc.properties):
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
2、 如下书写配置
<!-- jdbc连接,所有dao的bean中spring配置必须继承此bean -->
<bean id="jdbcdao"
class="org.springframework.jdbc.core.JdbcTemplate" abstract="true">
<property name="dataSource">
<ref local="dataSource"></ref>
</property>
</bean>
3、 在dao的bean中继承此bean,如下:
<bean id="userDao" class="bin.spring.jdbctemplate.dao.UserDao" parent="jdbcdao"/>
4、 接下来在dao的实现类中让它继承JdbcDaoSupport,便可以使用封装的方法。
public class UserDao extends JdbcDaoSupport
5、 这里介绍一种多行查询,其中User为模型类,里面4个属性,数据库的表为t_user:
/**
* 查询多行
*
* @return
*/
public List<User> getList(){
String sql = "select * from t_user";
List<User> list = getJdbcTemplate().query(sql, new RowMapper(){
//index为查询出数据每列的下标,从0开始
public Object mapRow(ResultSet rs, int index) throws SQLException {
User user = new User();
user.setId(rs.getInt("u_id"));
user.setName(rs.getString("u_name"));
user.setPassword(rs.getString("u_password"));
return user;
}});
return list;
}
6、 单列查询:
/**
* 查询单列
*
* @param id
* @return
*/
public String getUserNameById(final int id){
String sql = "select t.u_name from t_user t where t.u_id = ?";
return (String)getJdbcTemplate().query(sql, new PreparedStatementSetter(){
//PreparedStatementSetter的回调
public void setValues(PreparedStatement ps) throws SQLException {
ps.setInt(1, id);
}}, new ResultSetExtractor(){
//ResultSetExtractor的回调
public Object extractData(ResultSet rs) throws SQLException,
DataAccessException {
if (rs.next()) {
System.out.println(rs.getString(1));
return rs.getString(1);
}
return null;
}});
}
7、 单行查询:
/**
* 查询单行
*
* @param id
* @param name
* @return
*/
public User getUserById(final int id,final String name){
String sql = "select * from t_user t where t.u_id = ? and t.u_name = ?";
final User user = new User();
getJdbcTemplate().query(sql, new Object[]{id,name}, new RowCallbackHandler(){
public void processRow(ResultSet rs) throws SQLException {
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setPassword(rs.getString(3));
}});
return user;
}
总结:虽然只做了查询,但不难看出,增删改的操作,及其他的方法的设置,参数的使用上基本上都大同小异。
- 大小: 14.8 KB
分享到:
相关推荐
本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. Spring JdbcTemplate简介 Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储...
在本实例中,我们将深入探讨Spring JdbcTemplate的查询功能及其在实际应用中的使用。 首先,Spring JdbcTemplate通过提供一系列的模板方法,如`queryForList`、`queryForObject`、`execute`等,使得执行SQL查询变得...
SpringJdbcTemplate支持分页查询,通过`SimpleJdbcCall`或`NamedParameterJdbcCall`类,可以配合`RowCallbackHandler`或`ResultSetExtractor`处理分页结果。此外,还可以使用`JdbcPagingItemReader`作为Spring ...
《深入解析Spring JdbcTemplate》 Spring JDBC Template是Spring框架中...这个实例工程为我们提供了一个学习和实践Spring JdbcTemplate的良好平台,通过对其中代码的分析和运行,可以更好地理解和掌握其用法和精髓。
Spring JdbcTemplate接口提供了丰富的API,用于执行SQL查询、更新、插入、删除等操作。它抽象了数据库连接管理、事务控制等复杂过程,使代码更加简洁、易于测试。例如,`queryForList(String sql, Class<T> element...
Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,...
模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息
3. `spring-jdbc-5.0.0.RELEASE.jar`:包含Spring对JDBC的支持,包括JDBCTemplate和DataSourceTransactionManager,它们是与数据库交互和管理事务的关键。 4. `spring-tx-5.0.0.RELEASE.jar`:提供了事务管理功能,...
Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具类,它是基于JDBC但又抽象出了一层,避免了直接与数据库驱动API交互,从而提高了代码的可读性和可维护性。本文将深入探讨Spring JdbcTemplate的常用方法...
使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
Struts2、Spring和Spring JDBC Template是Java Web开发中常用的三个框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理前端请求和业务逻辑;Spring则是一个全面的后端框架,提供...
使用Spring的JdbcTemplate实现分页功能
Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...
根据给定的文件信息,以下是对“Spring JdbcTemplate API”的详细知识点解析: ### Spring JdbcTemplate API:数据库操作的模板模式 #### 概述 在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...
本主题将深入探讨Spring框架中的JdbcTemplate组件,以及模板模式和回调机制的概念。 **1. Spring JdbcTemplate** JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database ...
在Spring框架中,`JdbcTemplate`是用于简化Java数据库连接(JDBC)操作的一个核心组件。这个类提供了很多方法来执行SQL查询、更新语句,包括批处理操作。本篇文章将详细探讨`batchUpdate`方法及其在实际开发中的应用...
Spring JDBCTemplate是Spring框架中的一个核心组件,它提供了一种简化数据库操作的抽象层,使得开发者可以更加方便、高效地处理数据库事务。本篇将深入探讨Spring JDBCTemplate的使用及其源码解析,帮助你理解其背后...
本文将深入探讨如何利用Spring的JdbcTemplate进行MySQL数据库的分页查询,并对其进行封装,提高代码的复用性和可维护性。 首先,了解Spring JdbcTemplate的基本用法。JdbcTemplate是Spring提供的一个模板类,用于...
spring JdbcTemplate query方法使用示例,欢迎下载借鉴