在JDK中直接获取datasource,不利用其他的东东

现在都在用spring里,在spring的配置文件里,注入一个datasource, 像下面利用c3p0构建一个datasource一样

<bean id="dataSource" 
		class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass">
			<value>${db.driver}</value>
		</property>
		<property name="jdbcUrl">
			<value>${db.url}</value>
		</property>
		<property name="user">
			<value>${db.username}</value>
		</property>
		<property name="password">
			<value>${db.password}</value>
		</property>
	</bean>	

 

问题是,当我们自己写一个简单的例子的时候,不想引用一大堆的开源东东,想干干净净的用一个JDK就ok了,于是一般都是用下面的代码

String url = "jdbc:mysql://localhost:3306/test" ;    
String username = "root" ;   
String password = "root" ;   
Connection con =  DriverManager.getConnection(url , username , password ) ;  

 

但是,这样是无法直接拿到datasource的,只能拿到connection, 原因是datasource在JDK里只是一个 接口,它只是一个API的标准,实现全部交给数据库厂商去实现了,所以在JDK中直接获取datasource,不利用其他的东东是不可能。

 

但我们要获取一个datasource,一定会用这个数据库链接包,所以,我们必然要引用这个jar包,举例mysql, 我们引用了mysql-connector-java-5.1.6.jar. 在这里一定有它的datasource的实现方式,于是我们可以用如下代码:

MysqlDataSource ds= new MysqlDataSource(); 
ds.setServerName("localhost");
ds.setPortNumber(3306);
ds.setDatabaseName("test");
ds.setUser("root");
ds.setPassword("1234");

 

 结论:要想只用一个jdk拿出datasource是不可能的,因为jdk没有,请去要连接的数据库的厂商实现包里去找

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值