Spring JdbcTemplate API

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); 
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值