Spring数据库访问(HSQL)(四)
本文接上一篇继续研究Spring的JDBC模板。
之前,我们使用JDBC模板的方法是在每次调用方法时生成该对象,并使用了一个dataSource作为参数,这个dataSource是在生成DAO的实现类时Spring进行注入的。显然,这样的方式并不是最佳的做法,因为每次方法调用时都需要重新生成新的JDBC模板对象,那么现在,我们就来看看如何优化我们的程序。首先是简化JDBC模板的创建,那么我们就采用注入的方式来进行:
除了这种使用方式,我们还可以直接扩展Spring的JdbcDaoSupport抽象类,那么只需让我们的DAO实现类扩展JdbcDaoSupport即可,配置文件中直接给DAO注入数据源即可,而且我们不需要再显式注入它们,因为JdbcDaoSupport已经为我们做了这些工作了,代码就得到了进一步的精简:
这样我们的DAO层代码就已经非常的精简了,维护性也提高了。同时,我们还可以扩展SimpleJdbcDaoSupport抽象类来获得一些Java 5的新特性支持,不过Spring 3中已经对JdbcTemplate进行了调整,想测试SimpleJdbcDaoSupport也很简单,可以直接使用getSimpleJdbcTemplate()方法获得简化的JDBC模板,然后进行操作。下面我们通过SipleJdbcTemplate来看看如何简化查询操作,首先修改一下我们的映射器。
改为实现ParameterizedRowMapper接口,覆盖的方法不变。但在Spring3中,SimpleJdbcTemplate使用RowMapper是新方法,ParameterizedRowMapper是已经废弃的方法了。这点要注意,那么我们继续使用Spring3中的RowMapper。public void insertBatch(final List<Vehicle> vehicles) {String sql = "insert into vehicle(PLATE,CHASSIS,COLOR,WHEEL,SEAT) values(:plate,:chassis,:color,:wheel,:seat)";List<SqlParameterSource> parameters = new ArrayList<SqlParameterSource>();for (Vehicle vehicle : vehicles) {parameters.add(new BeanPropertySqlParameterSource(vehicle));}getSimpleJdbcTemplate().batchUpdate(sql,parameters.toArray(new SqlParameterSource[0]));}
Spring对JDBC的支持就介绍完了。(本部分内容完)后续将继续探讨Spring的数据库访问之ORM部分。 1 楼 aa87963014 2011-12-16 少了一个批量save 返回主键的封装 2 楼 sarin 2011-12-16 aa87963014 写道少了一个批量save 返回主键的封装
根据需求添加就可以了。呵呵