jdbcTemplate queryForMap与queryForList区别

前言

  在我们用java程序和数据库进行数据交换时,在数据访问层(也就是常用的dao层)
  常常会用到orm( Object Relational Mapping) 框架 如 mybatis(半自动) ,hibernate
  用的工具会有 通用Mapper ,sprigdataJpa 以及原生的jdbcTemplate

为什么要用这个jdbcTemplate

1.首先项目里面肯定会有选一种orm 框架,有时避免不了和原生一起用
2.原生的用起来挺方便的
3.多表联查或者复杂查询时,原生的执行效率还是有优势的

如何获取

1.spring进行了封装可以直接注入
2.可以自己封装
3.从工厂容器中去

常用方法

1.jdbcTemplate.queryForMap(String sql)
注意点 :
a. sql 必须能查到数据,不能为 null
b. sql 必须能查到数据, 而且仅有一条
c. 使用时最好捕捉一下异常,try catch
d. 返回取值的key, 就是查询列的字段
example:
String sql = " select a.name as title ,a.age ,a.money from table a";
Map<String,Object> dataMap = jdbcTemplate.queryForMap(sql);
取name值时 : dataMap .get(“title”); 非原字段名
取age值时 : dataMap.get(“age”); 此时取的是原字段
e. 取值是最好是用小写,因为有的项目支持的数据种类多,写的有适配,如 mysql,oracle,plsql,Dm(国产),用大写会导致程序报错

2.jdbcTemplate.queryForList(String sql)
个人是比较倾向于使用这个查这个方法,它查出来是一个集合,没有什么要求,取值前只需要对查询List.size()进行简单的判断即可,然后循环遍历,取值如上。

     谢谢,欢迎指教。
上一篇:一线互联网Java岗面试题:Spring中用了哪些设计模式?引发的深思


下一篇:spring事务使用注解