JdbcTemplate中execute和update的區別 ,以及JdbcTemplate的增刪改查
阿新 • • 發佈:2019-02-07
1、update可以帶引數,而execute不可以。例如:
jdbcTemplate.update("update TableA set name = 'Andy’ where id=?", new Object[] {new Integer(3)});
jdbcTemplate.update("insert into sys_person(person_id, person_name, gender) values(?,?,?)",new Object[]{"eeee","eeee","eeee"});
jdbcTemplate.execute("update TableA set name = 'Andy’ where id=3");
2、update背後是藉助於java.sql.PreparedStatement完成,而execute是基於java.sql.Statement。
3、update返回int, 即受影響的行數。execute返回void ps:
2、update背後是藉助於java.sql.PreparedStatement完成,而execute是基於java.sql.Statement。
3、update返回int, 即受影響的行數。execute返回void ps:
查1(無返回值):
this.jdbcTemplate.query("select * from sys_person t", new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { System.out.println(rs.getString("person_id") + " " + rs.getString("person_name")); } });
查2(有返回值):
<pre name="code" class="java">public List<Emp> findAll() { // 定義返回結果 List<Emp> entities =new ArrayList<Emp>(); entities = (List<Emp>) jdbcTemplate.query( "select id,name,sex,pass,hiredate from emp", new RowMapper() { @Override public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Emp emp = new Emp(); emp.setId(rs.getInt("id")); emp.setName(rs.getString("name")); emp.setSex(rs.getString("sex")); emp.setPass(rs.getString("pass")); emp.setHiredate(rs.getDate("hiredate")); return emp; } }); return entities; }
查3(同2):
<pre name="code" class="java">public Emp findById(Integer id) {
// 定義返回結果
Emp entity = null;
entity = (Emp) jdbcTemplate.queryForObject(
"select id,name,sex,pass,hiredate from emp where id=?",
new Object[] { id }, new RowMapper() {
@Override
public Object mapRow(ResultSet rs, int rowNum)
throws SQLException {
Emp emp = new Emp();
emp.setId(rs.getInt("id"));
emp.setName(rs.getString("name"));
emp.setSex(rs.getString("sex"));
emp.setPass(rs.getString("pass"));
emp.setHiredate(rs.getDate("hiredate"));
return emp;
}
});
return entity;
}
增:
this.jdbcTemplate.update("insert into sys_person(person_id, person_name, gender) values(?,?,?)",new Object[]{"eeee","eeee","eeee"});
刪:
int i = jdbcTemplate.update("delete from emp where id=? ",
new Object[] { entity.getId() });
改:
int i = jdbcTemplate
.update(
"update emp set name=?,sex=?,pass=?,hiredate=? where id=?",
new Object[] { entity.getName(), entity.getSex(),
entity.getPass(), entity.getHiredate(),
entity.getId() });