Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新

来源:互联网 发布:卡尔曼滤波 c语言 编辑:程序博客网 时间:2024/05/15 22:22
看了我前面几篇文章的朋友我相信基础已经有了,不知道大家在使用JDBC连接数据库的时候是不是厌倦了,不停的捕获异常不停的try catch 反正我是厌倦了,代码没写多少,一大半是异常的抓取,Spring的高手们也知道我们厌倦了,所以他们给我们一个JdbcTemplate类这个类把所有的异常抓取代码封装在类的内部,我们要做的只是处理业务逻辑就行了,好了,我来给大家介绍一下吧

org.springframework.jdbc.core
Class JdbcTemplate

java.lang.Object  extendedorg.springframework.jdbc.support.JdbcAccessor      extendedorg.springframework.jdbc.core.JdbcTemplate
All Implemented Interfaces:
InitializingBean, JdbcOperations
JdbcTemplate类的一个方法
 Objectexecute(PreparedStatementCreator psc,PreparedStatementCallback action)
          Execute a JDBC data access operation, implemented as callback action working on a JDBC PreparedStatement.
用于对PreparedStatement对象的处理可是该如何处理呢?看看PreparedStatementCreator类吧

org.springframework.jdbc.core
Interface PreparedStatementCreator

 

这个接口只有一个方法
 
 PreparedStatementcreatePreparedStatement(Connection con)
          Create a statement in this connection.
这个方法对一个Connection连接进行处理返回一个 PreparedStatement对象给JdbcTemplate
那么execute方法的另一个参数PreparedStatementCallback又是干什么的呢?

org.springframework.jdbc.core
Interface PreparedStatementCallback

All Known Implementing Classes:
AbstractLobCreatingPreparedStatementCallback

 这个接口也只有一个方法
 ObjectdoInPreparedStatement(PreparedStatement ps)
          Gets called by JdbcTemplate.execute with an active JDBC PreparedStatement.
这个方法对PreparedStatement对象进行处理返回一个结果,这下大家可能有一点了解了,不了解也没事,因为一开始我就不太明白,看看我的代码吧
现在还要向大家介绍JdbcTemplate类的另一个方法
 int[]batchUpdate(String sql,BatchPreparedStatementSetter pss)
          Issue multiple updates on a single PreparedStatement, using JDBC 2.0 batch updates and a BatchPreparedStatementSetter to set values.
批量更新这个方法接受一个BatchPreparedStatementSetter类对象

org.springframework.jdbc.core
Interface BatchPreparedStatementSetter


 intgetBatchSize()
          Return the size of the batch. voidsetValues(PreparedStatement ps, int i)
          Set values on the given PreparedStatement.
这个接口有两个方法一个是返回一个整数告诉JdbcTemplate需要更新几条信息,另一个方法是对PreparedStatemten对象设置值,看代码...
 
 对字符串进行拆分赋值
10e71b13bac.jpg
          Junit测试运行类10e71ac0f3c.jpg
          核心类10e71ad0f1a.jpg
          运行结果
10e71aa97e5.jpg
         我的MyPreparedStatementCreator类10e71aaf62e.jpg
         我的MYPreparedStatementCallback类10e71aa303d.jpg
         添加的XML110e71a93a0a.jpg
         添加的XML210e71a6d7c3.jpg
 
          XML配置文件
10e71a53813.jpg

本文出自 “绝缘材料” 博客,请务必保留此出处http://tonyaction.blog.51cto.com/227462/42042