SPringJdbc


————————SpringJSBC————————–


1. SpringJdbc

(1)SpringJdbc是什么?

Spring对jdbc的封装。

注:使用SpringJdbc访问数据库,代码更简洁.(比如不用考虑如何
获取连接与关闭连接等。)

(2) 编程步骤

step1. 导包。spring-webmvc、spring-jdbc,ojdbc,dbcp,junit.

step2. 添加spring的配置文件。

step3. 配置JdbcTemplate.

注:JdbcTemplate对常见的一些数据库操作做了封装。

step4. 调用jdbcTemplate提供的方法来访问数据库。

注:通常会将jdbcTemplate注入到DAO。

常用方法:

@Repository("employeeDAO")
public class EmployeeDAO {

    @Resource(name="jt")
    private JdbcTemplate jt;

    /**
     * SpringJdbc会将底层的异常转
     * 换成相应的RuntimeException,然后输出。 
     */
    /*
     * 插入数据
     */
    public void save(Employee e){
        String sql = "INSERT INTO emp_jdbc "
                  + " VALUES(emp_seq.nextval,?,?)";
        Object[] args = {e.getName(),e.getAge()};
        jt.update(sql,args);
    }
    /*
     * 查询所有数据
     */
    public List<Employee> findAll(){

        List<Employee> employees = new ArrayList<Employee>();
        String sql = "SELECT * FROM emp_jdbc";
        employees = jt.query(sql, new EmpRowMapper());      
        return employees;       
    }
    /*
     * 查询单一数据
     */
    public Employee findById(int id){
        String sql = "SELECT * FROM emp_jdbc "
                + " WHERE id=? ";
        Object[] args = {id};
        return jt.queryForObject(sql, args,new EmpRowMapper());
    }
    /*
     * 修改
     */
    public void modify(Employee e){
        String sql = "UPDATE emp_jdbc SET "
                + " name = ?,age=? WHERE id=? ";
        Object[] args = {e.getName(),e.getAge(),e.getId()};
        jt.update(sql,args);
    }
    /*
     * 删除
     */
    public void delete(int id){
        String sql = "DELETE FROM emp_jdbc "
                + " WHERE id=? ";
        Object[] args = {id};
        jt.update(sql,args);

    }
    /**
     *  内部类:告诉Springjdbc如何将记录转换为对用的实例对象。
     */
    class EmpRowMapper implements RowMapper<Employee>{
        //index:正在被处理的记录的下标
        public Employee mapRow(
                ResultSet rst, int index) throws SQLException {
            Employee e = new Employee();
            e.setId(rst.getInt("id"));
            e.setName(rst.getString("name"));
            e.setAge(rst.getInt("age"));
            return e;
        }       
    }
}

2. Spring集成Mybatis

(1)集成方式一:

step1.导包。

   spring-webmvc,mybatis,mybatis-spring,dbcp(链接池),ojdbc(驱动),spring-jdbc,juint(测试)

step2.添加spring配置文件并配置。


注:不在需要mybatis配置文件,原来mybatis的配置文件的内容会放到sql配置文件中的SQLSessionFactoryBean中。

step3.写实体类。

step4.写映射文件。

step5.写映射器Mapper(接口)。

step6.在Spring配置文件中配置MapperScannerconfigurer.

注1:

  该Bean会扫描指定包及其子包下面所有的映射器(接口)。然后调用SQLSession的getMapper方法,

  并且将该方法的返回值(就是实现了映射器接口的对象)放到Spring容器里面(默认的Id为首字母小写的接口名)。

注2:如何只扫描有特定注解的接口?

   1. 开发一个注解。

   2. 修改MapperScannerconfigurer的配置。

   3. 将该注解添加到接口之上。

见项目: mybatis-day02-1

(2)集成方式二:

step1.导包。

   spring-webmvc,mybatis,mybatis-spring,dbcp(链接池),ojdbc(驱动),spring-jdbc,juint(测试)

step2.添加spring配置文件。


注:不在需要mybatis配置文件,原来mybatis的配置文件的内容会放到sql配置文件中的SQLSessionFactoryBean中。

step3.写实体类。

step4.写映射文件。

step5.写映射器Mapper(接口)。

step6.写一个java类,实现映射器接口。

step7.配置SqlSessionTemplate。

注: SqlSessionTemplate对SqlSession的操作做了封装。

见项目: mybatis-day02-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值