java 代码
  1. 一。  在Spring中使用JdbcTemplate进行编码只需要根据明确定义的一组契约来实现架设接口。   
  2.     PreparedStatementCreator回调接口通过给定的Connection创建一个PreparedStatement,包含SQL和任何相关   
  3. 的参数。CallableStatementCreator实现同样的处理,只不过它创建的是CallabeStatement.   
  4. RowCallbackHandler接口则从数据集的每一行中提取值   
  5.   
  6. 1.NamedParameterJdbcTemplate 类   
  7.     NamedParameterJdbcTemplate类增加了在SQL语句中使用命名参数的支持。它的内部封装啦一个变通的   
  8. JdbcTemplate,并作为其代理来完成大部分工作。如果我们需要访问其内部JdbcTemplate的实例,那么需要使用   
  9. getJdbcOperations()方法返回JdbcOperations接口   
  10. 下面是两者之间的不同之处并加以说明.   
  11.   
  12. 例  :   
  13. public int countOfActorsByFirstName(String firstName){   
  14.     String sql="select count(0) from ACTOR where first_Name=:firstName";   
  15.     NamedParameterJdbcTemplate template=new NamedParameterJdbcTemplate(this.getDataSource());   
  16.     SqlParameterSource namedParameters=new MapSqlParameterSource("first_Name",firstName);   
  17.   
  18.     return template.queryForInt(sql,namedParameters);   
  19. }   
  20.  我们也可以使用基于Map风格的名值对将命名参数传递给NamedParameterJdbcTemplate  ,它实现啦NamedParameterJdbcOperations接口   
  21.  剩下的工作将由调用该接口的相应的方法去完成.   
  22.   
  23.  public int countOfActorsByFirstName(String firstName){   
  24.     String sql="select count(0) from ACTOR where first_Name=:firstName";   
  25.     NamedParameterJdbcTemplate template=new NamedParameterJdbcTemplate(this.getDataSource());   
  26.     Map namedParameters=new HashMap();   
  27.     namedParameters.put("first_name",firstName);   
  28.   
  29.     return template.queryForInt(sql,namedParameters);   
  30. }   
  31.   
  32. 2.SimpleJdbcTemplate 类   
  33.   
  34.     SimpleJdbcTemplate类是JdbcTemplate类的一个包装器,它利用了Java 5的一些语言特性,比如Varargs   
  35. (可变参数)和Autoboxing(自动打包)。   
  36. 下面首先是使用标准的JdbcTemplate进行数据访问,最后再使用SimpleJdbcTemplate 做同样的事就可以看出它的方便   
  37. 之处啦。   
  38.   
  39. 例: 用JdbcTemplate   
  40.   
  41. public Actor FindActor(Long id){   
  42.     String sql="select id,first_name,last_name from T_Actor where id=?";   
  43.     RowMapper mapper=new RowMapper(){   
  44.         public Object mapRow(ResultSet rs,int rowNum) throws SQLException{   
  45.   
  46.         Actor actor=new Actor();   
  47.         actor.setId(rs.getLong(Long.valueOf(rs.getLong("id"))));   
  48.         actor.setFirstName(rs.getString("first_name"));   
  49.         actor.setLastName(rs.getString("last_name"));   
  50.   
  51.         return actor;   
  52.         }   
  53.     };   
  54.     JdbcTemplate jdbcTemplate=new JdbcTemplate(this.getDataSource());   
  55.   
  56.     return (Actor) JdbcTemplate.queryForObject(sql,mapper,new Object[]{Long.valueOf(id)});   
  57. }   
  58.   
  59. 用 SimpleJdbcTemplate 类   
  60.   
  61. public Actor FindActor(Long id){   
  62.     String sql="select id,first_name,last_name from T_Actor where id=?";   
  63.     ParameterizedRowMapper<Actor> mapper=new ParameterizedRowMapper<Actor>(){   
  64.   
  65.         public Actor mapRow(ResultSet rs,int rowNum) throws SQLException{   
  66.   
  67.         Actor actor=new Actor();   
  68.         actor.setId(rs.getLong("id"));   
  69.         actor.setFirstName(rs.getString("first_name"));   
  70.         actor.setLastName(rs.getString("last_name"));   
  71.   
  72.         return actor;   
  73.         }   
  74.     };   
  75.     SimpleJdbcTemplate simpleJdbcTemplate=new SimpleJdbcTemplate(this.getDataSource());   
  76.   
  77.     return (Actor) simpleJdbcTemplate.queryForObject(sql,mapper,id);   
  78. }   
  79.   
评论
发表评论

您还没有登录,请登录后发表评论

dongguoh
  • 浏览: 16323 次
  • 性别: Icon_minigender_1
  • 来自: 山水之乡
  • 详细资料
搜索本博客
最近加入圈子
存档
最新评论