Spring -JdbcTemplate 总结

 

                                       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());

           }

      });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值