Spring框架

7.4 使用具名参数的JdbcTemplate

  • 关于具名参数

在Hibernate的HQL查询中我们体验过具名参数的使用,相对于基于位置的参数,具名参数具有更好的可维护性,在SQL语句中参数较多时可以考虑使用具名参数。

在Spring中可以通过NamedParameterJdbcTemplate类的对象使用带有具名参数的SQL语句。

  • 通过IOC容器创建NamedParameterJdbcTemplate对象

<!– 配置可以使用具名参数的JDBCTemplate类对象 –>

<bean

         id=“namedTemplate”

         class=“org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate”>

         <!– 没有无参构造器,必须传入数据源或JdbcTemplate对象 –>

         <constructor-arg ref=“dataSource”/>

</bean>

 

  • 具名参数在SQL语句中的格式

INSERT INTO depts (dept_name) VALUES (:deptName)

 

  • 具名参数传入

①通过Map对象传入

NamedParameterJdbcTemplate.update(String sql, Map<String, ?> map)

Map的键是参数名,值是参数值

② 通过SqlParameterSource对象传入

 

String sql = “INSERT INTO depts (dept_name) VALUES (:deptName)”;

Department department = new Department(null, “YYY”, null);

SqlParameterSource sqlParameterSource =

                   new BeanPropertySqlParameterSource(department);

namedTemplate.update(sql, sqlParameterSource);

 

7.5 使用JdbcTemplate实现Dao

  • 通过IOC容器自动注入

JdbcTemplate类是线程安全的,所以可以在IOC容器中声明它的单个实例,并将这个实例注入到所有的Dao实例中。

@Repository

public class EmployeeDao {

 

         @Autowired

         private JdbcTemplate jdbcTemplate;

 

         public Employee get(Integer id){

                   //…

         }

}

 


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)