Spring 使用JDBC对数据库进行访问
来源:互联网 发布:淘宝客服服务理念 编辑:程序博客网 时间:2024/05/10 15:55
Spring提供的JDBC抽象框架.org.springframework.jdbc.datasource包里有一个用以简化数据源访问的工具类.它支持绑定线程的连接,比如被用于DataSourceTransactionManager.
(1):jdbc.properties 属性配置文件(因为是测试,所以这个文件包括下面的applicationContext.xml都放在classpath下)
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scott
jdbc.password=tiger
(2): applicationContext.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="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<!-- WEB-INFO <value>WEB-INF/jdbc.properties</value>-->
<!-- Classpath --><value>classpath*:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 数据源定义,使用Apache DBCP 连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 数据源定义,使用DriverManagerDataSource 连接 -->
<bean id="dataSource2"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
</beans>
(3) 通过三种方式得到Connection
package cn.com.chenlly.db;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
//不是web应用程序,这两个jdbc.properties,applicationContext.xml文件不是放在WEB-INFO 而是放在SRC classpath下面
public class DbTest {
//配置文件所在的目录
private final static String fileName="D://workspace//spingTest//src//jdbc.properties";
//读取配置文件
public static Properties readDBConfig() throws IOException{
InputStream in = new BufferedInputStream(new FileInputStream(fileName));
Properties p = new Properties();
p.load(in);
in.close();
return p;
}
//Spring 上下文
public static ApplicationContext getContext(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
return context;
}
/*使用Spring的JDBC层,你可以从JNDI得到一个数据源,也可以通过使用Spring发行版提供的实现自己配置它。
后者对于脱离Web容器的单元测试是十分便利的。
我们将在本节中使用DriverManagerDataSource实现*/
public static Connection getConByDMDS(){
Connection con = null;
try {
Properties p = DbTest.readDBConfig();
String driverClassName = p.getProperty("jdbc.driverClassName");
String url = p.getProperty("jdbc.url");
String username = p.getProperty("jdbc.username");
String password = p.getProperty("jdbc.password");
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
con = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//通过Spring注入依赖得到连接
public static Connection getConByDMS2() throws SQLException{
ApplicationContext context=DbTest.getContext();
DriverManagerDataSource ds = (DriverManagerDataSource) context.getBean("dataSource2");
Connection con = ds.getConnection();
return con;
}
//DBCP 连接配置
public static Connection getConByDBCP() throws SQLException{
ApplicationContext context=DbTest.getContext();
BasicDataSource ds = (BasicDataSource) context.getBean("dataSource");
Connection con = ds.getConnection();
return con;
}
//主调函数,测试
public static void main(String[] args) {
Connection con = null;
DbTest db= new DbTest();
try{
//(1)DriverManagerDataSource
con = db.getConByDMDS();
System.out.println("DriverManagerDataSource=="+con.toString());
//(2)DriverManagerDataSource by Spring
con = db.getConByDMS2();
System.out.println("DriverManagerDataSource by Spring=="+con.toString());
//(3) DBCP Pool
con = db.getConByDBCP();
System.out.println("DBCP Pool=="+con.toString());
} catch (Exception ex){
ex.printStackTrace();
}
}
}
- Spring 使用JDBC对数据库进行访问
- Spring JDBC-使用Spring JDBC访问数据库
- 使用spring-jdbc访问数据库
- 小曹学spring--使用Spring JDBC访问数据库
- 使用JDBC进行数据访问【spring framwork】
- 使用Spring进行JDBC数据访问
- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD
- 使用JDBC对数据库进行CRUD
- 11.1 使用Spring JDBC访问数据库
- 使用JDBC进行数据访问【spring-framework-reference】
- 使用jdbc访问数据库
- 使用jdbc访问数据库
- 使用JDBC访问数据库
- 使用JDBC访问数据库
- 使用JDBC 访问数据库
- 使用JDBC访问数据库
- 使用JDBC对数据库进行CRUD的操作
- AOP——基本概念整理
- BUSINESS OBJECTS
- sqlhelper 使用指南
- JesperReport应用系列之入门篇4
- 文档的重要性
- Spring 使用JDBC对数据库进行访问
- TFT屏幕、QVGA屏幕、VGA屏幕的区别
- 修改数据库的名字和ID可以使用DBNEWID Utility工具
- java 定时器的使用(Timer)
- 当析构函数遇到多线程──C++ 中线程安全的对象回调
- Fatal error: Class 'ZipArchive' not found的解决办法
- 给公司的同学们写的Gmail的账户和导入功能使用说明
- Ogre 材质
- Cache Coherence on AMD HyperTransport