Spring -JdbcTemplate 总结

原创 2011年07月22日 17:13:29
 

                                       Spring-JdbcTemplate 总结

1. 查询单个对象:

a)      基本类型

================================================

下面两个方法主要适用于静态sql

◆     public Object queryForObject(String sql, RowMapper rowMapper)

◆     public Object queryForObject(String sql, Class requiredType)

注意:requiredType 只能是基本类型的class,只针对基本类型有效

◆     public Object queryForObject(String sql, Object[] args, Class requiredType)

◆     public Object queryForObject(String sql, Object[] args, RowMapper rowMapper)

◆     public Object queryForObject(String sql, Object[] args, int[] argTypes, Class requiredType)

注:其中argTypes 可以使用java.sql.Types常量类中的常量值

◆     public Object queryForObject(String sql, Object[] args, int[] argTypes, RowMapper rowMapper)

注: rowMapper是一个回调接口

以下主要用于查询数值对象

◆     public int queryForInt(String sql, Object[] args)

◆     public long queryForLong(String sql, Object[] args)

==================================================

下面的方法将返回的各个列封装成map对象,key为列名,value为列值.只能一行数据,不能返回多行数据.

◆     public Map queryForMap(String sql, Object[] args)

b)      引用类型

◆     public Object queryForObject(String sql, RowMapper rowMapper)

◆     public Object queryForObject(String sql, Object[] args, RowMapper rowMapper)

◆     public Map queryForMap(String sql, Object[] args)

2. 查询多个对象

a)      基本类型:

◆     public List queryForList(String sql, Object[] args)

注:返回的list的每个元素都是一个map对象,该map对象封装了一行数据且只有一行数据,包括要查询的列字段

b)      引用类型:   

◆     public List queryForList(String sql, Object[] args)

        Iterator iter =  this.jdbcTemplate.queryForList(sql,new Object[]{}).iterator();

        List list = new ArrayList();

        while(iter.hasNext()){

            User user = new User();

            Map map = (Map) iter.next();

            Set<Entry<String, String>> set = map.entrySet();

            Iterator<Entry<String, String>> iter2 = set.iterator();

            Entry<String, String> entry = iter2.next();

            user.setUsername(entry.getValue());

            entry = iter2.next();

            user.setPassword(entry.getValue());

            list.add(user);

       }

◆     public List query(String sql, Object[] args, RowMapper rowMapper)

注:返回的list 中的元素可以是引用类型的对象.

◆       public Object execute(ConnectionCallback action)

注:使用回调接口.将各个字段值封装成引用类型的对象,然后以list方式返回.

3.  修改操作.适用于增、删、改

◆     public int update(String sql, Object[] args)

4.  批处理

 String sql = "insert into user(username,password) values(?,?)";

       final List list = new ArrayList();

       for(int i = 0;i < 5 ; i++){

           User user = new User();

           user.setPassword("dog" + i);

           user.setUsername("dog" + i);

           list.add(user);

       }

       int [] rst = this.jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter(){

           public int getBatchSize() {

              return list.size();

           }

           public void setValues(PreparedStatement ps, int i)

                  throws SQLException {

              User user = (User) list.get(i);

              ps.setString(1, user.getUsername());

              ps.setString(2, user.getPassword());

           }

      });

Spring源码分析——JdbcTemplate执行批量insert操作

最近用到一个方法:@Override public int[] batchUpdate(String sql, final BatchPreparedStatementSetter pss) thr...
  • lhc2207221755
  • lhc2207221755
  • 2016-10-16 21:44:06
  • 1637

Spring的JDBCTemplate批量更新的性能问题

Spring的JDBCTemplate批量更新的性能问题
  • birdben
  • birdben
  • 2016-07-03 03:35:29
  • 7467

Spring:JdbcTemplate使用指南

  • 2009年10月08日 14:20
  • 176KB
  • 下载

JDBCTemplate基础方法query()的运用

原创文章,转载时请注明出处。 最近公司在优化代码,把基础的JDBCsql语句转为JDBCTemplate,自己在网上找了很久,大多都是query()方法的延伸,比如queryForObject()...
  • luciferyyw
  • luciferyyw
  • 2017-07-25 11:21:08
  • 271

SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql

本文介绍springboot通过jdbc访问关系型mysql,通过spring的JdbcTemplate去访问。
  • forezp
  • forezp
  • 2017-04-22 22:31:56
  • 39442

Spring JdbcTemplate实例

Spring JdbcTemplate类是Spring提供的简化数据库操作的一个类,这个类使用了模板方法模式,可以减少一些重复代码。这里主要演示一下 JdbcTemplate的使用。...
  • ruangong1203
  • ruangong1203
  • 2015-12-03 19:43:24
  • 1252

搭建Spring MVC+ jdbcTemplate框架

从零开始搭建Spring MVC+ jdbcTemplate框架
  • woai671
  • woai671
  • 2016-07-13 23:04:08
  • 3483

spring boot入门之使用JdbcTemplate

spring boot 对数据库操作在jdbc上做了进一步的封装,jdbcTemplate提供了基于注解的事务管理功能,spring可以通过注解的形式,把DataSouce数据源直接注入到jdbcTe...
  • qq27Ke
  • qq27Ke
  • 2017-03-30 15:53:48
  • 2788

【Spring学习】Spring JdbcTemplate之五类方法总结

最近写了几个同步数据的统计任务,使用到了JDBCTemplate的批处理,顺手将JDBCTemplate的用法大概总结了一下。JDBCTemplate主要提供了五类方法:execute()方法:可用于...
  • lmb55
  • lmb55
  • 2017-01-04 20:45:54
  • 2496

Spring (六) 使用Spring 内置的JdbcTemplate操作数据库

hibernate是一个很好的ORM框架,使用Hibernate可以很好的提高开发效率,而且操作起来也是非常简单,但是Hibernate也有一定的灵活性限制,此时就可以使用spring内置的JDBC框...
  • H12KJGJ
  • H12KJGJ
  • 2017-06-19 19:47:32
  • 2354
收藏助手
不良信息举报
您举报文章:Spring -JdbcTemplate 总结
举报原因:
原因补充:

(最多只允许输入30个字)