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() {@Overridepublic int getBatchSize() {return temList.size();}@Overridepublic 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, newBatchPreparedStatementSetter() {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的方法就这些 后期遇到会更新哟