`
qcyycom
  • 浏览: 182770 次
社区版块
存档分类
最新评论

spring整合jdbc(二)

 
阅读更多

在上次的操作中只是简单的利用了spring容器中注入dataSource元素来建立数据库的连接,而没有发挥出spring框架的核心作用。这里在继续对spring进行深入的理解:

在进行数据库操作时,我们每次都要进行一次链接,一来很费时费力,二来对以后的开发起不到很好的作用。

因此这里我们借助spring对JDBC的强大支持利用JDBCTemplate类来对JDBC的控制(调用、执行、查询、更新),JDBCTemplate的操作步骤如下:

  • 打开数据库连接。
  • 指定在连接上执行的语句。
  • 设置要求的参数并执行语句。
  • 如需求,可以得到Reslutset,迭代返回结果,接着不管任何异常关闭Reslutset。
  • 运行每次迭代的代码,若没有要求迭代,只返回单个值。
  • 处理SQLException事例。
  • 处理所有活动的事物(判断是否提交,回滚)。
  • 关闭链接

这里我们用到的JDBCTemplate的类函数:

query方法:查询存数据的方法,一大堆的函数啊。我们只用到了(ArrayList<Student>) jdbcTemplate.query("select * from student", new StudentRowMapper());

update方法:一般是修改啊更新啊删除啊操作,int update(string ,Object[],int[])string则是我们写的sql语句了,object[]是我们在javabean中的定义的类型参数,int[]类型参数的类型。例如:jdbcTemplate.update("delete fromstudent where id=?",new Object[]{id},<wbr><span style="color:#0000ff">new</span><span style="color:#0000ff">int</span>[]{java.sql.Types.INTEGER});</wbr>

execute方法:没有来得及看呢。

这里是现实类StudentServiceImpl方法体

其中StudentRowMapper是按照重载函数RowMapper的要求写的:


最后的测试方法SpringJDBC:

其中为了测试重载函数的作用,加了一条语句System.out.println("您的年龄是"+student.getAge());

结果没有取到age的值,证明了RowMapper的作用RowMapper.mapRow(ResultSet,int)方法返回的对象曾加到list上,并将List返回给调用者


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics