783

[Srping]JdbcTemplate封装对象

2015.07.11 评论(6) 371次

Spring对Jdbc数据库处理做了很多利于开发的工具,今天大概说一下BeanPropertyRowMapper工具。

咱们如果需要从一个表中查询出数据,并封装成对象,有很多中方法。如下:

现在有一用户表TEST,字段有C_NAME、C_PASSWORD、N_AGE。咱们要查询表中的所有数据,并封装成User对象。User对象如下

一、最笨的方式

所谓最笨的方式,就是用Jdbc最底层的方法去封装,如:

可以看到,一个简单的查询,代码就达到15行以上。而且每次封装成类的时候,都得把左右字段都取出来一次,然后放入新建的属性中,太麻烦了。

二、第一次调整

咱们看看JdbcTemplate的方法,在查询的中可以使用rowMapper,可以对每一行的数据进行封装,那么咱们的程序改为:

可见,代码少了很多。

三、第二次调整

上面谢了这么多,都要自己从枚举字段,取出值再set到对象中,还是很麻烦啊,如果一个表中的字段很多,那不得累死。。。有没有现成的方法呢?答案是有的。

BeanPropertyRowMapper是Spring为开发者提供的一个可以自动将查询结果封装成对象的类,他其实就是rowMapper的一个实现,使用了反射机制,将查询到的参数依次设置到对象中。

是不是很神奇。那么他是怎么将字段值和对象的属性对应呢。在这里有个规则:

注意对于驼峰式命名的field: 例如,对于gameId, mappedFields 会同时保存"gameId"和"game_id" 因此在sql语句中, select id as game_id, name from game和 select id as gameId, name from game的效果是一样的 

当然,这只是理想状态,如果你的字段名和你的对象名无法对应,可以使用字段别名的方式映射;

完:本文共882字
  • 本文标题:[Srping]JdbcTemplate封装对象
  • 本文地址:http://www.jialeens.com/archives/783.html
  • 本站文章除注明转载外,均为本站原创或编译
  • 欢迎任何形式的转载,但请务必以链接形式注明出处,请尊重他人劳动成果
  • 本作品采用 [知识共享署名3.0] 进行许可
上一篇: 没有了,已经是最新文章。
6条评论
评论 (6)
相关 (0)
  • 还没有Trackback
发表评论
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif