zoukankan      html  css  js  c++  java
  • Spring中JdbcTemplate

    JdbcTemplate jdbcTemplate==new JdbcTemplate(source);//传入DataSource类型的参数

    它封装了jdbc中Connection对象的取得,Statement对象的建立,异常的处理,Statement和Connection的关闭等操作。它是线程安全的。

    如:

    jdbcTemplate.update("delete from person where id=?",
    new Object[]{id}, new int[]{Types.INTEGER});

    其中第三个参数可以省略。或者使用PreparedStatementCreator接口来实现:
    jdbcTemplate.update(new PreparedStatementCreator() {
    @Override
    public PreparedStatement createPreparedStatement(Connection conn)
    throws SQLException {
    // TODO Auto-generated method stub
    String sql="insert into person(name) values(?)";
    PreparedStatement pstmt=conn.prepareStatement(sql);
    pstmt.setString(1, person.getName());
    return pstmt;
    }
    });

    或者使用PreparedStatementSetter实现setValues方法。

    1.批处理可以使用jdbcTemplate的batchUpdate(sql,setter)

    其中setter参数实现BatchPreparedStatementSetter接口

    2.查询:

    queryForObject等方法,queryForList取得多个。

    3.查询后的回调方法

    实现RowCallbackHandler

        public Person getPerson(Integer id) {
    final Person person=new Person();
    jdbcTemplate.query("select * from person where id=?",
    new Object[]{id},
    new RowCallbackHandler() {

    @Override
    public void processRow(ResultSet rs) throws SQLException {
    // TODO Auto-generated method stub
    person.setId(rs.getInt("id"));
    person.setName(rs.getString("name"));
    }
    }
    );
    return person;
    // TODO Auto-generated method stub
    /*return (Person)jdbcTemplate.queryForObject(
    "select * from person where id=?",
    new Object[]{id},new int[]{Types.INTEGER},
    new PersonRowMapper());
    */
    }

    或者实现RowMapper

    public class PersonRowMapper implements RowMapper {

    @Override
    public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
    // TODO Auto-generated method stub
    Person person=new Person();
    person.setId(rs.getInt("id"));
    person.setName(rs.getString("name"));
    return person;
    }

    }





  • 相关阅读:
    [leetcode] N-Queens
    [leetcode] Minimum Path Sum
    [leetcode] Longest Valid Parentheses
    习题9-1 时间换算
    long常量和long long常量
    整数占用空间
    来到地球多久啦
    习题8-10 输出学生成绩
    习题8-7 字符串排序
    习题8-9 分类统计各类字符个数
  • 原文地址:https://www.cnblogs.com/tazi/p/2307568.html
Copyright © 2011-2022 走看看