Spring集成JDBC操作数据库实例教程

首先,我们需要安装mysql数据库,并下载相应的驱动包

库脚本如下:

 

CREATE   TABLE  `test` (
  `testid` 
varchar ( 10 default   NULL ,
  `testname` 
varchar ( 10 default   NULL
) ENGINE
= InnoDB  DEFAULT  CHARSET = gb2312;

表中数据为:
1   name1
2   name2
3   name3
4   name4
5   name5

 

 DAO接口

 

package  ch8.jdbcTemplage;

import  java.util.List;

public   interface  ITestDAO  {
  
public List getAll();
}

 

对应数据表的JavaBean

 

package  ch8.jdbcTemplage;

public   class  User  {
  
private String name;
  
private String id;
public User(String name, String id) {

    
this.name = name;
    
this.id = id;
}

public String getId() {
    
return id;
}

public void setId(String id) {
    
this.id = id;
}

public String getName() {
    
return name;
}

public void setName(String name) {
    
this.name = name;
}


public String toString() {
    
    
return this.id+"--"+this.name;
}


}

 

DAO实现

 

package  ch8.jdbcTemplage;

import  java.sql.Connection;
import  java.sql.PreparedStatement;
import  java.sql.ResultSet;
import  java.sql.SQLException;
import  java.util.ArrayList;
import  java.util.List;

import  org.springframework.dao.DataAccessException;
import  org.springframework.jdbc.core.PreparedStatementCallback;
import  org.springframework.jdbc.core.PreparedStatementCreator;
import  org.springframework.jdbc.core.support.JdbcDaoSupport;

public   class  TestDAOImpl  extends  JdbcDaoSupport  implements  ITestDAO  {

    
public List getAll() {
        
return (List)this.getJdbcTemplate().execute(
          
new PreparedStatementCreator(){
               
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException{
                  
return connection.prepareStatement("select * from test");
               }

              
          }
,new PreparedStatementCallback(){
              
public Object doInPreparedStatement(PreparedStatement ps) throws SQLException,DataAccessException{
                  List result
=new ArrayList();
                  ResultSet rs
=ps.executeQuery();
                  User t
=null;
                  
while(rs.next()){
                      t
=new User(rs.getString("testid"),rs.getString("testname"));
                      result.add(t);
                  }

                  
return result;
              }

              
          }
        
        );
    }


}

 

配置文件:

 

<? xml version="1.0" encoding="UTF-8" ?>
< beans
    
xmlns ="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" >


< bean  id ="dataSource"  class ="org.apache.commons.dbcp.BasicDataSource" >
  
< property  name ="driverClassName" >
    
< value > com.mysql.jdbc.Driver </ value >
  
</ property >
  
< property  name ="username" >
    
< value > root </ value >
  
</ property >
  
< property  name ="password" >
    
< value > 1234 </ value >
  
</ property >
  
< property  name ="url" >
    
< value > jdbc:mysql://localhost:3306/spring </ value >
  
</ property >
</ bean >

< bean  id ="testDAO"  class ="ch8.jdbcTemplage.TestDAOImpl" >
  
< property  name ="dataSource" >
    
< ref  bean ="dataSource" />
  
</ property >
</ bean >

</ beans >

 

测试代码:

 

package  ch8.jdbcTemplage;

import  java.util.Iterator;
import  java.util.List;

import  org.springframework.context.ApplicationContext;
import  org.springframework.context.support.ClassPathXmlApplicationContext;

public   class  Test  {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        ApplicationContext context
=new ClassPathXmlApplicationContext("ch8/jdbcTemplage/applicationContext.xml");
        TestDAOImpl testDAOImpl
=(TestDAOImpl)context.getBean("testDAO");
        List result
=testDAOImpl.getAll();
        
for (Iterator iter = result.iterator(); iter.hasNext();) {
            User element 
= (User) iter.next();
            System.out.println(element);            
        }
    
     }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值