从这一讲开始,需要用到数据库,你先要确保你有一个数据库可以供你测试,本章用到一个表叫做book, 建表语句:
create table letter(
id varchar(20) primary key,
name varchar(20),
author varchar(20),
price float
)
如果你忘记了jdbc, 这里有一个例子让你回忆起来。
spring对jdbc作了轻量级的包装,对数据库的全部操作都集中在JdbcTemplate上面。如果你对template比较陌生,你可以想象一下简历模板,它把大多数的框架性的通用的内容都准备好了, 你只需要填上你自己的特定的信息,一份简历就制作完毕了。JdbcTemplate也是这样的,它把通用的功能都写好了,只留下特定的方法需要你去实现或拓展。我们先看一个例子,以便对JdbcTemplate有一个大体的认识:
为了后面的演示,我们先写一个BookDao接口,规定一些应该实现的功能。
我们在dao程序中可以直接使用JdbcTemplate,但是更简单的方法是dao直接继承自JdbcDaoSupport,因为JdbcDaoSupport里面包含一个JdbcTemplat实例,看一下用JdbcDaoSupport该怎么写DAO,本例中除了普通的crud,还用到了batchUpdate,一次可以插入或跟新多条记录,如果你没有使用过jdbc的batchUpdate, 建议你先看看它是怎么工作的,它能够大大的提高性能.我有一篇blog介绍了jdbc的batchUpdate.建议你去看一看.http://blog.csdn.net/sunxing007/archive/2009/06/03/4240301.aspx
你会注意到,里面用到了一个内部类BookRowMapper implements RowMapper,这个类的作用就是把结果集映射成java对象.因为考虑到这个Mapper只有dao用得到, 所以定义为内部类.现在来做一些配置工作,因为JdbcDaoSupport需要JdbcTemplate,JdbcTemplate需要dataSource,所以要配置dataSource, JdbcTemplate, 还有刚写的dao. dataSource的配置我们前面讲过了,我还是把它贴出来,我使用了占位符.
测试:
关于spring jdbc还有一些内容,比如处理blob, 自增主键, SimpleJdbcTemplate,NameParamterJdbcTemplate,它们学习起来应该不难, 就不一一介绍了.
紧接着本文, 话题突然转入了Hibernate, 这是因为我写到这里之后, 开始了Hibernate的项目, 就顺手写了hibernate的适用心得. 剩余的spring的话题会接着Hibernate来. 您可以点击:http://blog.csdn.net/sunxing007/article/category/534073 来查看所有的有关SpringFramework的文章.