springJDBC

定义
(1)SpringJdbc是什么?

spring对jdbc的封装。
使用SpringJdbc访问数据库,不用考虑如何获取连接、关闭连接等等
繁琐的操作。

(2)编程步骤

step1.导包。
spring-webmvc,spring-jdbc, ojdbc,dbcp
step2.添加Spring配置文件。
step3.配置JdbcTemplate。 

<util:properties id="db" location="classpath:db.properties"/>

    <!-- 配置连接池 -->
    <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName"
        value="#{db.driver}"/>
        <property name="url"
        value="#{db.url}"/>
        <property name="username"
        value="#{db.user}"/>
        <property name="password"
        value="#{db.pwd}"/>
        <property name="initialSize"
        value="#{db.initsize}"/>
    </bean>

    <bean id="jt" 
    class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource"
        ref="ds"/>
    </bean>

    <context:component-scan base-package="dao"/>
@Repository("empDAO")
public class EmployeeDAO {
    @Autowired
    @Qualifier("jt")
    private JdbcTemplate jt;

    public void save(Employee e){
        String sql = "INSERT INTO "
        + "t_emp VALUES("
        + "t_emp_seq.nextval,?,?,?)";

        Object[] args = {e.getName(),
                e.getSalary(),e.getAge()};

        jt.update(sql, args);

    }

    public List<Employee> findAll(){
        String sql = "SELECT * FROM t_emp";
        return jt.query(sql, new EmpRowMapper());
    }

    public Employee findById(int id){
        String sql = "SELECT * FROM t_emp "
                + "WHERE id = ?";
        Object[] args = {id};
        Employee e;
        try{
            e = jt.queryForObject(
                    sql, args,new EmpRowMapper());
        }catch(EmptyResultDataAccessException
                e1){
            return null;
        }
        return e;  
    }

    /*
     * 封装了对ResultSet的处理。
     */
    class EmpRowMapper implements 
        RowMapper<Employee>{
        //index:正在被处理的记录的下标 
        public Employee mapRow(
                ResultSet rs, int index) 
                    throws SQLException {
            Employee e = new Employee();
            e.setId(rs.getInt("id"));
            e.setName(rs.getString("name"));
            e.setSalary(rs.getDouble("salary"));
            e.setAge(rs.getInt("age"));
            return e;
        }

    }
}

这里写图片描述
这里写图片描述

总结:将连接池注入到JdbcTemplate中,在通过id,将JdbcTemplate (jt)对象注入到xxxDao中。
通过JdbcTemplate 提供的API对数据库进行操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值