Spring JdbcTemplate API

来源:互联网 发布:java web 甘特图 开源 编辑:程序博客网 时间:2024/05/17 01:58

Spring JdbcTemplate API


1.queryForObject() 方法

  - 查询方法,返回唯一结果方法

  - 两个参数:sql 和 返回值类型

  - 用于查询返回唯一结果的情况。


String sql = "select 'Hello World!'" +" as s from dual";String str=jdbcTemplate.queryForObject(sql, String.class);System.out.println(str);



2.update 方法

  - 用于执行DML 语句:insert delete update

  - 可变参数:第一个参数是SQL语句,第二个开始是SQL语句中替换的参数。


jdbcTemplate.update(sql, 100, 2012,"123","Jerry", "110", "jerry@tom.cn", new Date());


3.查询多个结果


1)返回一行数据,封装为一个对象

    - Admin findById(int adminId)

2) 返回多行数据,封装为一个List

    - List 中每个元素是一个对象。

    - List<Admin> findAll()


> 注意:需要将一行数据映射到一个对象



4.使用 queryForObject() 方法查询对象

  1) 写一个RowMapper 对象,用于将一行数据封装为一个对象。

  2) 调用queryForObject方法:需要3个参数

    - sql 语句

    - sql 语句参数

    - 结果映射对象 rowmapper

RowMapper 代码实例:

/** * 将当前结果行映射到一个对象 */RowMapper<Admin> rowmapper = new RowMapper<Admin>() {public Admin mapRow(ResultSet rs, int index)throws SQLException {int id=rs.getInt("admin_id");String code=rs.getString("admin_code");String name=rs.getString("name");String pwd = rs.getString("password");String tel=rs.getString("telephone");String email = rs.getString("email");Timestamp date =rs.getTimestamp("enrolldate");return new Admin(id, code, pwd,name, email, tel, date);}};
执行 queryForObject方法实例:


String sql = "select * from " +" admin_info_lhh " +" where admin_id = ?";JdbcTemplate jdbcTemplate =getCtx().getBean("jdbcTemplate", JdbcTemplate.class);Admin admin = jdbcTemplate.queryForObject(sql,//SQL new Object[]{100}, //SQL参数rowmapper);//rs 的映射规则System.out.println(admin); 

RowMapper 执行原理:


5.使用 query方法查询多个对象


> 用于:findAll()  findByName()

1) 写一个RowMapper 对象,用于将一行数据封装为一个对象。

2) 调用query 方法:需要3个参数

    - sql 语句

    - 结果映射对象 rowmapper

    - sql 语句参数

query方法实例:


String sql = "select * from " +" admin_info_lhh " +" where admin_id > ?";JdbcTemplate jdbcTemplate =getCtx().getBean("jdbcTemplate", JdbcTemplate.class);List<Admin> list = jdbcTemplate.query(sql,//SQL rowmapper, //rs 的映射规则new Object[]{0} //SQL参数);System.out.println(list); 


6.使用 queryForList查询部分结果

- Spring JDBC 支持查询有限列作为结果

- 此时将 查询结果中的每个行封装为一个Map对象,在map中key是列明,value是列值。

- queryForList方法就是用于查询有限列作为结果,其结果为一个list,每个元素是一个map,每个map是一行。


原理:

使用方式:

String sql = "select admin_id, name" +" from admin_info_lhh ";JdbcTemplate jdbcTemplate =getCtx().getBean("jdbcTemplate",JdbcTemplate.class);List<Map<String, Object>> list=jdbcTemplate.queryForList(sql);for (Map<String, Object> row : list){System.out.println(row); }


0 0
原创粉丝点击