独自快乐|spring框架的入门学习:AOP和面向切面的事务( 八 )

() {@Overridepublic User mapRow(ResultSet rs, int arg1) throws SQLException {User u=new User();u.setAge(rs.getInt("age"));u.setName(rs.getString("name"));u.setId(rs.getInt("id"));return u;}}, id);return u; } @Override //获取用户的数量 public int getTotalCount() {String sql="select count(*) from user";Integer c=jt.queryForObject(sql,Integer.class);return c; } @Override //获取所有的用户 public List getAll() {String sql="select * from user";List userList=jt.query(sql, new RowMapper(){@Overridepublic User mapRow(ResultSet rs, int arg1) throws SQLException {User u=new User();u.setAge(rs.getInt("age"));u.setId(rs.getInt("id"));u.setName(rs.getString("name"));return u;}});return userList; }}将jdbc整合进spring中 , 并进行测试:
如上所示要想使用配置JDBC首先需要使用数据库连接池 , 然后将jdbc模板配置到userDao中 , 此时就可以在测试集中直接使用userDao来进行操作了:
package com.huanfeng.dao;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.core.env.SystemEnvironmentPropertySource;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:com/huanfeng/dao/applicationContext.xml")public class Demo { @Resource(name="userDao") private UserDao ud; @Test public void test1() {User u=new User();u.setAge(100);u.setName("xia");u.setId(3);ud.add(u); } @Test public void test2() {ud.delete(1); } @Test public void test3() {User u=new User();u.setAge(100);u.setName("xiaoo");u.setId(3);ud.update(u); } @Test public void test4() {User u=ud.getById(2);System.out.println(u); } @Test public void test5() {int c=ud.getTotalCount();System.out.println(c); } @Test public void test6() {List l=ud.getAll();System.out.println(l); }}jdbc的扩展 , 在之前我们使用了JdbcTemplate的时候使用了UserDaoImpl进行了参数传递 , 是否可以不进行这样地操作了?可以具体来说首先UserDaoImpl中使用 , 我们需要继承:
JdbcDaoSupport
这样就可以通过super.getJdbcTemplate()获取jdbc模板对象了 。
那么在xml中就不用配置模板对象了 , 但是需要将数据库连接池配置到UserServiceDao中:
package com.huanfeng.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import com.huanfeng.dao.User;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowMapper;import org.springframework.jdbc.core.support.JdbcDaoSupport;public class UserDaoImpl2 extends JdbcDaoSupport implements UserDao { @Override //这是增加方法 public void add(User u) {String sql="insert into user values(?,?,null)";super.getJdbcTemplate().update(sql,u.getName(),u.getAge()); }//这是删除方法 @Override public void delete(Integer id) {String sql="delete from user where id=?";super.getJdbcTemplate().update(sql,id); } @Override //这是修改方法 public void update(User u) {String sql="update user set name=?, age=? where id=?";super.getJdbcTemplate().update(sql,u.getName(),u.getAge(),u.getId()); } @Override //这是获取指定id的用户 public User getById(Integer id) {String sql="select * from user where id=?";User u=super.getJdbcTemplate().queryForObject(sql, new RowMapper


推荐阅读