Spring JdbcTemplate 的使用(spring4)

Spring JdbcTemplate

  • 简单介绍
  • 方法介绍
    - - 基本方法介绍
    - - 常用方法介绍

JdbcTemplate 介绍

JdbcTemplate是Spring框架对原生JDBC操作的封装,为jdbc数据库操作 (固定的流程),提供丰富callback回调接口功能,方便用户自定义加工细节,更好模块化jdbc操作,简化传统的JDBC操作的复杂和繁琐过程


Spring JdbcTemplate 基本方法

方法名用途
execute()可用于执行任何sql语句,但是一般用来执行DDL语句
query() queryForXxx()用来执行查询相关的语句
update() batchUpdate()update()方法用来执行增加 修改和删除等语句 batchUpdate()方法用来执行批处理相关的语句
call()方法用于执行存储过程、函数相关的语句

Spring JdbcTemplate 常用方法

  • query(sql)
public List<Record> findDataById(int newId,int row) {
Object[] args = new Object[] { newId, row };
sql = "select id,room_id,room_code,start_time,ifnull(online_time,0),end_time,create_time from acdn_record where id> ? limit 0,?";
RowMapper<Record> im=     
BeanPropertyRowMapper.newInstance(Record.class);
    return jdbcTemplate.query(sql,args,im);
}
  • queryForObject(sql,返回类.class)
public int findMaxId() {
  sql = "SELECT MAX(ID) FROM user";
  return jdbcTemplate.queryForObject(sql,Integer.class);
}
  • queryForRowSet(sql)
public SqlRowSet userInfo() {
   sql = "select uid,username,sex,age from user";
   return jdbcTemplate.queryForRowSet(sql);
}
  • queryForRowSet(sql,args)
public SqlRowSet userInfoById(String anchorId) {
  Object [] args = new Object [] {anchorId};
  sql = 
  "select uid,username,sex,age from user where uid = ?";
   return jdbcTemplate.queryForRowSet(sql,args);
}
  • queryForList(sql, 返回类.class)

    注:这有个大坑,当时还让小编跳进去了
    这里的ForList返回的是一列的List 并不是多列

public List<Integer> getIdList(){
 sql = "select uid from user";
 return jdbcTemplate.queryForList(sql,Integer.class);
}
  • update(sql)
public int updateInfo(String anchorId){
Object [] args = new Object []{anchorId}
 sql = "update user set uaername = ? where uid = ?"; 
 return jdbcTemplate.update(sql,args );
}
  • batchUpdate(批量新增/修改数据 两种方法大同小异)
# 批量新增数据
public void batchInsertData(List<Record> relist) {
   List<Record> temList = relist;
   sql = "insert into record (id,room_id,room_code) 
         values(?,?,?)";
   jdbcTemplate.batchUpdate(sql, new    
   BatchPreparedStatementSetter() {
     @Override
     public int getBatchSize() {
        return temList.size();
      }
     @Override
     public void setValues(PreparedStatement ps, int i) 
     {
     try {
         ps.setInt(1, temList.get(i).getId());
         ps.setInt(2, temList.get(i).getRoom_id());
         ps.setString(3, temList.get(i).getRoom_code());    
     }catch (SQLException e) {
        e.printStackTrace();    
    }
   }
 });
}
# 批量修改数据
public void batchUpdateData(List<Info> list) {
  sql = "update record set end_time=?,duration=? 
         where id =?";
  jdbcTemplate.batchUpdate(sql, new
    BatchPreparedStatementSetter() {
    public void setValues(PreparedStatement ps, int i) throws SQLException {
        ps.setString(1, list.get(i).getEnd_time());
        ps.setInt(2, list.get(i).getOnline_time());
        ps.setInt(3, list.get(i).getId());
}

public int getBatchSize() {
     return list.size();
   }
 });
}

目前小编常用的springjdbc的方法就这些 后期遇到会更新哟

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值