Spring DataSource Demo(http://blog.cnbb.com.cn/shiningsb/archive/2007/02/06/41623.html)

本Demo实现一个简单的数据源并注入类对象,然后通过一个Main函数进行调用测试

不想说太多理论知识 由于能力有限 怕说错误导人 请见谅 直接进入正题.

1.配置文件 beans-config.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
 "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName">
   <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
  </property>
  <property name="url">
   <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs</value>
  </property>
  <property name="username">
   <value>sa</value>
  </property>
  <property name="password">
   <value></value>
  </property>
 </bean>
 
 <bean id="daoTest" class="com.daodemo.DaoTest">
  <property name="dataSource">
   <ref bean="dataSource"/>
  </property>
 </bean>
</beans> 

 

注意:这个配置文件放在工程根目录下即可,关于目录调用访问问题可自行测试.

org.springframework.context.support包下面几个读取配置文件的类 访问路径都有区别.

 

2.业务逻辑测试类(一个简单的查询操作) DaoTest.java

 

package com.daodemo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.sql.DataSource;


public class DaoTest {
 
 public DataSource dataSource;
 
 public DataSource getDataSource() {
  return dataSource;
 }

 public void setDataSource(DataSource dataSource) {
  
  this.dataSource = dataSource;
 }

 public ResultSet getEmpName(){
  ResultSet rs = null;
  try{
   Connection con = dataSource.getConnection();
   String sql = "select fname,lname from employee";
   PreparedStatement pstmt = con.prepareStatement(sql);
   rs = pstmt.executeQuery();
  }catch(Exception e){
   e.printStackTrace();
  }
  return rs;
 }

}

 

 

 

注意:这个类里必须要有setDataSource方法 并且具有dataSource属性,否则配置文件中的

<bean id="daoTest" class="com.daodemo.DaoTest">
  <property name="dataSource">
   <ref bean="dataSource"/>
  </property>
 </bean>

将不能完成依赖注入

3.测试类 DaoMain.java

 

package com.daodemo;

import java.sql.ResultSet;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class DaoMain {

 public static void main(String[] args) {
  try{
   //应用程序上下文ApplicationContext类 是一个接口 不能直接初始化,需要用支持包中的实现类来创建context 对象
   ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml");

   //用context来获得daoTest bean , 这个类中的dataSource已经被注入,所以无须在业务逻辑中再初始化数据源等操作.
   DaoTest daoTest = (DaoTest) context.getBean("daoTest");
   ResultSet rs = daoTest.getEmpName();
   
   while(rs.next()){
    System.out.println(rs.getString("fname")+ " " +rs.getString("lname"));
   }
   
  }catch(Exception e){
   e.printStackTrace();
  }
 }

}

 

 

注意:这个类中FileSystemXmlApplicationContext 也可以换成其他的类来读取bans-config.xml文件 来获得bean

4.输出结果

 

Aria Cruz
Ann Devon
Annette Roulet
............部分省略...............
Timothy O'Rourke
Victoria Ashworth
Yoshi Latimer

5. 希望此文对想入门Spring的初学者有所帮助,希望Spring老鸟批评指正. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值