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

之后就可以测试了:
package com.huanfeng.annotationaop;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.huanfeng.service.UserService;import com.huanfeng.service.UserServiceImpl;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:com/huanfeng/annotationaop/applicationContext.xml")public class Demo { @Resource(name="userService") private UserService us; @Test public void test1() {us.add(); }}spring整合jdbc模板
独自快乐|spring框架的入门学习:AOP和面向切面的事务JdbcTemplate模板的使用 , 这个和QueryRunner使用是差不多的 , 将数据库连接池连接上就可以进行数据库操作了
//创建连接池ComboPooledDataSource dataSource=new ComboPooledDataSource();dataSource.setDriverClass("com.mysql.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql:///spring_data");dataSource.setUser("root");dataSource.setPassword("root");//创建JDBC模板对象JdbcTemplate jt=new JdbcTemplate();jt.setDataSource(dataSource);String sql="DELETE FROM shiyan WHERE number='3'";int i=jt.update(sql);System.out.println(i);上面仅仅介绍了如何使用jabcTemplate来完成数据库的连接工作 , 对于数据库的操作而言 , 需要进行增删改查的操作 , 那么如何使用jdbc进行增删改查呢
package com.huanfeng.dao;import java.util.List;import com.huanfeng.dao.User;public interface UserDao { //增加 void add(User u); //删除 void delete(Integer id); //修改 void update(User u); //查询指定id的uesr User getById(Integer id); //查询user总人数 int getTotalCount(); //查询所有user信息 List getAll();}如下所示涵盖了使用jt处理常见数据库的增删改查操作的常用方法 , 其中除了查询之外都使用update方法 , 第一个参数是sql语句 , 第二个参数是sql语句的?对应的值 。
查询使用query(获取list)和queryObject(获取一个对象或者单个值)都可以使用这种方法 , 第一个参数是sql , 第三个参数是sql中的?(可有可无 , 这是可变长的参数) , 第二个是一个RowMapper这个类似于dbutils中的ListHandler,但是这个比较麻烦 , 需要我们手动的对其进行封装处理 , 然后里面的参数ResultSet表示查询出来的每一行结果 , 我们只需要将其封装成一个user对象就好了 , 然后它会自动的一次又一次地封装 。
还有如果查询出来的结果是一个值 , 比如查询count(*) , 那么我们可以使用queryObject , 此时的第二个参数就不是RowMapper了 , 而是这个值对应的类型
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;public class UserDaoImpl implements UserDao { private JdbcTemplate jt; public void setjt(JdbcTemplate jt) {this.jt=jt; } @Override //这是增加方法 public void add(User u) {String sql="insert into user values(?,?,null)";jt.update(sql,u.getName(),u.getAge()); }//这是删除方法 @Override public void delete(Integer id) {String sql="delete from user where id=?";jt.update(sql,id); } @Override //这是修改方法 public void update(User u) {String sql="update user set name=? ,age=? where id=?";jt.update(sql,u.getName(),u.getAge(),u.getId()); } @Override //这是获取指定id的用户 public User getById(Integer id) {String sql="select * from user where id=?";User u=jt.queryForObject(sql, new RowMapper


推荐阅读