1.queryForObject

  - 其中的 RowMapper 指定如何去映射结果集的行, 常用的实现类为 BeanPropertyRowMapper

  - 使用 SQL 中列的别名完成列名和类的属性名的映射. 例如 last_name lastName

  -不支持级联属性(如:depatmant.id). JdbcTemplate 到底是一个 JDBC 的小工具, 而不是 ORM 框架

String sql = "select id,last_name name,email from employees where id=?";
RowMapper<Employee> rowMapper = new BeanPropertyRowMapper<>(Employee.class);
Employee employee = jdbcTemplate.queryForObject(sql, rowMapper, 1);
System.out.println(employee);

 2.配置NamedParameterJdbcTemplate,此对象可以使用具名参数,其没有无参数的构造器

<bean class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
      id="namedParameterJdbcTemplate">
    <constructor-arg ref="dataSource"></constructor-arg>
</bean>

3.使用具名参数时, 可以使用 update(String sql, SqlParameterSource paramSource) 方法进行更新操作

  -SQL 语句中的参数名和类的属性一致!

  -使用 SqlParameterSource 的 BeanPropertySqlParameterSource 实现类作为参数.

String sql = "insert into employees (last_name,email,dept_id) values(:name,:email,:deptId)";

Employee employee = new Employee();
employee.setEmail("gg@gmail.com");
employee.setName("yaso");
employee.setDeptId(3);

SqlParameterSource parameterSource = new BeanPropertySqlParameterSource(employee);
namedParameterJdbcTemplate.update(sql, parameterSource);

 

posted on 2018-08-17 10:51  超级蛋蛋饭  阅读(105)  评论(0编辑  收藏  举报