分类: Java
2012-01-06 15:37:51
增加数据库代码的Bean注入过程
dataSource 定义数据源
注入数据源 | | 注入数据源
| |
POJO: userDAO transactionManager
注入DAO | |注入事务 |
| | |
Action类 UserDAOProxy
该过程按照执行的顺序 包含以下几个步骤
1 创建数据源dataSource
2 创建事务管理对象transactionManager 并注入数据源dataSource
3 创建userDAO 并注入数据源dataSource
4 创建事务管理策略对象UserDAOProxy 并注入所管理对象userDAO和所用的事务管理器transactionManager
5 创建Action类 并注入userDAO
详细步骤
1 配置数据源和事务
[1] 配置数据源
在applicationContext.xml中添加一个dataSource的
并指定4个数据参数 driverClassName url username password
注意:
MySQL的驱动
DBCP数据源还需要另外两个类包:commons-collections-3.1.jar commons-pool-1.2.jar
把上面的三个类包到项目目录WEB-INF\lib目录下
[2]为数据源配置事务
为了增加数据库的事务管理功能 我们配置一个事务管理对象transactionManager 所用的事务类为Spring的默认类 并设置配置的属性dataSource指向刚才配置的数据源 这样就会为改数据源添加数据管理功能 配置的代码如下所示
2 创建用户表的POJO类User.java
要使用JdbcTemplate进行数据库操作 必须有与数据库表对应的POJO类 供JdbcTemplate使用
3 创建数据操作类com.demo.spring.dao.UserDAO.java
该类使用JdbcTemplate来实现数据库的访问逻辑 要进行数据库的访问 就要为该类定义一个数据源dataSource 因此首先需要为该类添加一个dataSource数据源变量 并添加getter/setter的函数 该数据源的对象将会在下一节中通过Spring的Ioc容器配置进行注入
接着我们进行配置DAO的Bean组件
4 配置UserDAO及其事务处理
[1]配置UserDAO
上面创建了数据操作类UserDAO.java 要使用该类 还需要为该类配置
[2]配置UserDAO事务代理
为了实现Spring容器对UserDAO的事务管理功能 我们需要配置一个事务代理对象UserDAOProxy
改配置包含三个属性
transactionManager 指向第一步中配置的事务对象
target 指向事务管理的数据对象userDAO
transactionAttribute 指定事务管理的细节 这里添加了一个
在配置了UserDAO的事务代理后 Spring会监听对UserDAO的访问 此时所有对UserDAO的访问都将在Spring的事务控制范围之内
5 修改LoginAction访问UserDAO进行登录验证
首先为LoginAction添加一个变量
然后为applicationContext.xml中的loginAction的配置注入userDAO变量
下面修改LoginAction处理类中的用户登录验证函数isValid() 它使用被注入对象userDAO的isValid()函数 即可查找数据库中改用户名和密码是否存在 如果存在就返回true 否则返回false
6 修改RegisterAction访问UserDAO进行用户注册
跟LoginAction一样 首先需要为RegisterAction添加一个变量
然后为applicationContext.xml中的registerAction的配置注入userDAO变量
修改RegisterAction处理类中判断用户名是否存在的函数i***ist() 与LoginAction中i***ist()类似 他使用被注入对象userDAO的i***ist()函数 就可以查找数据库中改用户名是否存在 如果存在就返回true 否则就返回false
然后修改RegisterAction处理类中添加新的用户的函数add() 他使用被注入对象userDAO的insertUser()函数 即可向数据库插入新用户数据
至此 就完成了JdbcTemplate数据库访问代码的开发