1. 程式人生 > >JdbcTemplate中execute和update的區別 ,以及JdbcTemplate的增刪改查

JdbcTemplate中execute和update的區別 ,以及JdbcTemplate的增刪改查

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:  
查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() });