首页 > 代码库 > Spring JdbcTemplate+JdbcDaoSupport实例

Spring JdbcTemplate+JdbcDaoSupport实例

在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个数据库的操作过程。
在本教程中,我们将重复上一篇文章 Spring+JDBC例子,看之前(无JdbcTemplate支持)和之后(含JdbcTemplate的支持)之间不同的例子。

1. 不使用JdbcTemplate示例

如果不用JdbcTemplate,必须创建大量的冗余代码(创建连接,关闭连接,处理异常)中的所有DAO数据库的操作方法 - 插入,更新和删除。它的效率并不是很高,容易出错和乏味。
private DataSource dataSource;			public void setDataSource(DataSource dataSource) {		this.dataSource = dataSource;	}			public void insert(Customer customer){					String sql = "INSERT INTO CUSTOMER " +				"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";		Connection conn = null;					try {			conn = dataSource.getConnection();			PreparedStatement ps = conn.prepareStatement(sql);			ps.setInt(1, customer.getCustId());			ps.setString(2, customer.getName());			ps.setInt(3, customer.getAge());			ps.executeUpdate();			ps.close();						} catch (SQLException e) {			throw new RuntimeException(e);						} finally {			if (conn != null) {				try {					conn.close();				} catch (SQLException e) {}			}		}	}

2. 使用JdbcTemplate示例

使用JdbcTemplate可节省大量的冗余代码,因为JdbcTemplate类会自动处理它。
private DataSource dataSource;	private JdbcTemplate jdbcTemplate;			public void setDataSource(DataSource dataSource) {		this.dataSource = dataSource;	}	public void insert(Customer customer){					String sql = "INSERT INTO CUSTOMER " +			"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";				 		jdbcTemplate = new JdbcTemplate(dataSource);						jdbcTemplate.update(sql, new Object[] { customer.getCustId(),			customer.getName(),customer.getAge()  		});					}
看看有什么不同?

3. 使用JdbcDaoSupport示例

通过扩展 JdbcDaoSupport,设置数据源,并且 JdbcTemplate 在你的类中不再是必需的,只需要正确的数据源注入JdbcCustomerDAO。可以使用 getJdbcTemplate()方法得到 JdbcTemplate。

public class JdbcCustomerDAO extends JdbcDaoSupport implements CustomerDAO	{	   //no need to set datasource here	   public void insert(Customer customer){					String sql = "INSERT INTO CUSTOMER " +			"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";				 		getJdbcTemplate().update(sql, new Object[] { customer.getCustId(),				customer.getName(),customer.getAge()  		});					}
<beans xmlns="http://www.springframework.org/schema/beans"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="http://www.springframework.org/schema/beans	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">		<bean id="dataSource"          class="org.springframework.jdbc.datasource.DriverManagerDataSource">		<property name="driverClassName" value="http://www.mamicode.com/com.mysql.jdbc.Driver" />		<property name="url" value="http://www.mamicode.com/jdbc:mysql://localhost:3306/yiibaijava" />		<property name="username" value="http://www.mamicode.com/root" />		<property name="password" value="http://www.mamicode.com/password" />	</bean>	</beans>
<beans xmlns="http://www.springframework.org/schema/beans"	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="http://www.springframework.org/schema/beans	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">	<bean id="customerDAO" class="com.yiibai.customer.dao.impl.JdbcCustomerDAO">		<property name="dataSource" ref="dataSource" />	</bean>	</beans>
注: 在Spring JDBC开发,它总是建议使用,总是建议使用 JdbcTemplate和JdbcDaoSupport,而不使用自己的JDBC编程代码。
 
下载代码  – http://pan.baidu.com/s/1bnIGdiR

Spring JdbcTemplate+JdbcDaoSupport实例