Spring——JdbcTemplate和namedParameterJdbcTemplate

1.JdbcTemplate

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

JdbcTemplate使用SQL语句放入DAO类的各个方法中封装。

即DAO类中的各个方法,调用自动装配的JdbcTemplate对象(即让JdbcTemplate作为DAO类的成员变量),来调用String类型的SQL。

配置文件
<bean id="jdbcTemplate"
    class="org.springframework.jdbc.core.jdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
</bean>
@repository
public class EmployeeDao{
    @Autowire
    private JabcTemplate jdbcTemplate;

    public Employee get(Integer id){
        String sql="SELECT id,last_name lastName,email FROM employee WHERE id=?";
        RowMapper<Employee> rowMapper=new BeanPropertyRowMapper<>(Employee.class);
        Employee employee=jdbcTemplate.querForObject(sql,rowMapper,id);

        return emploee;
    }

}

2.NamedParameterJdbcTemplate

它有带参的构造器,因此配置bean时,必须传入一个DataSource

<!--配置它时,该对象可以使用具名参数,即带有名字的参数,其没有无参数的构造器,所以必须为其构造器指定参数-->
<bean id="namedParameterJdbcTemplate"
    class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
    <constructor-arg ref="dataSource"></construct-arg>
</bean>

好处①如有多个参数,则不用再去对应位置,直接对应参数名,便于维护。

②也可以直接传入一个对象-使用update(String sql,SqlParameterSource  parameterSource)

缺点:编码比较麻烦。

122552_Drz0_3786691.png

 

转载于:https://my.oschina.net/u/3786691/blog/1786741

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值