spring整合jdbc

Spring整合Jdbc


  第一步:
    
     --新建工程,引入jar包
         (spring开发包,ojdbc.jar)
       
     第二步:
     
      --在src下添加applicationContext.xml
   
    第三步:
    
     --针对COST表编写实体类
   
    第四步:
    
     --编写CostDAO接口,定义要实现的方法
   
    第五步:
    
     --编写JdbcCostDAO实现类
      (继承JdbcDaoSupport,在方法体中使用JdbcTemplate类完成增删改查操作)
     
        update:用于增、删、改操作
       
        queryForObject:用于查询一条记录
       
        query:用于查询多条记录
       
        queryForInt:用于查询一个数值的
      
     第六步:
     
      --将JdbcCostDAO在Spring容器中定义
   
    第七步:
     
     --追加一个连接池,
     在Spring容器中定义一个dataSource组件对象Bean,
     并将该Bean组件对象给JdbcCostDAO注入。
       (JdbcDaoSupport里有一个setDataSource方法,
     接收容器注入的DataSource对象,
     利用DataSource对象实例化JdbcTemplate)

备注:
 
1.配置文件

 <!--dataSource-->
       
  <bean id="myDataSource"
   class="org.apache.commons.dbcp.BasicDataSource">
   <property name="username" value="tarena">
   </property>
   <property name="password" value="hoosq">
   </property>
   <property name="driverClassName" value="oracle.jdbc.OracleDriver">
   </property>
   <property name="url" value="jdbc:oracle:thin:@192.168.0.23:1521:tarena10g">
   </property>
  </bean>

 <!--JdbcDAO-->

  <bean id="costDao" scope="singleton"
   class="org.tarena.dao.impl.JdbcCostDAO">
   <property name="dataSource" ref="myDataSource">
   </property>
  </bean>

2.jdbcDAO例子:

 //删除
 public void delete(Cost cost) {
  String sql = "delete from COST where ID=?";
  Object[] params = {cost.getId()};
   this.getJdbcTemplate().update(sql,params);
    }
 //查询所有
 public List<Cost> findAll() {
   String sql = "select * from COST";
   CostRowMapper mapper = new CostRowMapper();
   List<Cost> list =
    this.getJdbcTemplate().query(sql, mapper);
   return list;
 }
 //通过id查询一条记录
 public Cost findById(int id) {
   String sql = "select * from COST where ID=?";
   Object[] params = {id};
   CostRowMapper mapper = new CostRowMapper();
   Cost cost = (Cost)this.getJdbcTemplate()
    .queryForObject(sql, params,mapper);
   return cost;
 }
 //增加记录
 public void save(Cost cost) {
   String sql = "insert into COST (ID, NAME, "
     + "BASE_DURATION, BASE_COST, " + "UNIT_COST, CREATIME, "
     + "STATUS, DESCR) values(FEE_SEQ.nextval,?,?,?,?,?,?,?) ";
  
   Object[] params = {
      cost.getFeeName(),
      cost.getBaseDuration(),
      cost.getBaseCost(),
      cost.getUnitCost(),
      cost.getCreateTime(),
      cost.getStatus(),
      cost.getDescr()
    };
   this.getJdbcTemplate().update(sql,params);
 }
 //更新
 public void update(Cost cost) {
   String sql = "update COST set...";
   Object[] params = {};
   this.getJdbcTemplate().update(sql,params);
   }
 //查询记录数
 public int count() {
   String sql = "select count(*) from COST";
   int c = this.getJdbcTemplate().queryForInt(sql);
   return c;
   }

3.自动调用,将当前记录封装成一个实体对象

 public class CostRowMapper implements RowMapper{
   //自动调用,将当前记录封装成一个实体对象
   public Object mapRow(ResultSet rs, int arg1)
     throws SQLException {
    
     Cost cost = new Cost();
     cost.setId(rs.getInt("ID"));
     cost.setFeeName(rs.getString("NAME"));
     cost.setBaseDuration(rs.getInt("BASE_DURATION"));
     cost.setBaseCost(rs.getFloat("BASE_COST"));
     cost.setUnitCost(rs.getFloat("UNIT_COST"));
     cost.setCreateTime(rs.getDate("CREATIME"));
     cost.setStartTime(rs.getDate("STARTIME"));
     cost.setStatus(rs.getString("STATUS"));
     cost.setDescr(rs.getString("DESCR"));
     return cost;
    }
 }

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值