JAVA中的JdbcTemplate详解
JDBCTemplate是Spring为我们提供的,一组访问访问数据库的类库,Spring对JDBC的封装,通俗点说就是Spring对jdbc的封装的模板
Jdbctemplate中含有下面四个方法:
query、queryForObject、queryForList、queryForMap
【query方法】
返回结果是list,且list中元素必须是自定义bean;不能是list<String>
。
【queryForObject】
查询出一条记录并封装到一个对象中。
可以返回的是String、Integer、Double或者自定义bean。
但是如果查询的记录为0条或者大于1条,会抛出异常。
【queryForList】
这个方法返回一个list,这个方法比较特殊,可以返回List<String>
,还可以返回list<Map<String,Objec>>
。
如果sql是select * fromtabName;
这时返回list<map>
,
如果sql是select name from tabName;
或者select max(score) from tabName;
则返回就是list<基本类型>
。
【queryForMap】查询一行数据封装到Map中。如果查询多行记录抛出异常。
【总结】
查询一行数据并返回int型结果
jdbcTemplate.queryForInt("select count(*) from test");
查询一行数据并将该行数据转换为Map返回
jdbcTemplate.queryForMap("select * from test where name='name5'");
查询一行任何类型的数据,最后一个参数指定返回结果类型
jdbcTemplate.queryForObject("select count(*) from test", Integer.class);
查询一批数据,默认将每行数据转换为Map
jdbcTemplate.queryForList("select * from test");
只查询一列数据列表,列类型是String类型,列名字是name
jdbcTemplate.queryForList("select name from test where name=?", new Object[]{"name5"}, String.class);
查询一批数据,返回为SqlRowSet,类似于ResultSet,但不再绑定到连接上
SqlRowSet rs = jdbcTemplate.queryForRowSet("select * from test");