`
squll369
  • 浏览: 106788 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

在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没有,请去要连接的数据库的厂商实现包里去找

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics