㈠ java datasource 需要关闭吗
DataSource在使用完后也是需要关闭的
无论是否使用
连接池
。如果没使用连接池那么
Connection
关闭是真正的关闭数据库连接,使用连接池的话Connection关闭实际上是将Connection放回到连接池而非真正关闭连接。使用连接池的目的就是防止频繁创建关闭Connection,连接池会对Connection复用,就是多次重复使用。
㈡ java根据配置文件如何创建SQLServerDataSource实例
Java中spring读取配置文件的几种方法如下:
一、读取xml配置文件
(一)新建一个java bean
package chb.demo.vo;
public class HelloBean {
private String helloWorld;
public String getHelloWorld() {
return helloWorld;
}
public void setHelloWorld(String helloWorld) {
this.helloWorld = helloWorld;
}
}
㈢ java中DriverManager跟DataSource获取getConnection有什么不同
DriverManager是直接和数据库地层连接
DataSource是用数据库连接池进行封装好获得连接的,访问量大的项目最好用连接池
拷贝于JDK 6.0 中文版.
--------------------------------------
public interface DataSource extends CommonDataSource, Wrapper
该工厂用于提供到此 DataSource 对象所表示的物理数据源的连接。作为 DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。实现 DataSource 接口的对象通常在基于 JavaTM Naming and Directory Interface (JNDI) API 的命名服务中注册。
DataSource 接口由驱动程序供应商实现。共有三种类型的实现:
基本实现 - 生成标准的 Connection 对象
连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池管理器一起使用。
分布式事务实现 - 生成一个 Connection 对象,该对象可用于分布式事务,大多数情况下总是参与连接池。此实现与中间层事务管理器一起使用,大多数情况下总是与连接池管理器一起使用。
DataSource 对象的属性在必要时可以修改。例如,如果将数据源移动到另一个服务器,则可更改与服务器相关的属性。其优点在于,由于可以更改数据源的属性,所以任何访问该数据源的代码都无需更改。
通过 DataSource 对象访问的驱动程序本身不会向 DriverManager 注册。通过查找操作获取 DataSource 对象,然后使用该对象创建 Connection 对象。使用基本的实现,通过 DataSource 对象获取的连接与通过 DriverManager 设施获取的连接相同。
----------------------------------------------
public class DriverManager extends Object
管理一组 JDBC 驱动程序的基本服务。
注:DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法。使用 DataSource 对象是连接到数据源的首选方法。
作为初始化的一部分,DriverManager 类会尝试加载在 "jdbc.drivers" 系统属性中引用的驱动程序类。这允许用户定制由他们的应用程序使用的 JDBC Driver。
在调用 getConnection 方法时,DriverManager 会试着从初始化时加载的那些驱动程序以及使用与当前 applet 或应用程序相同的类加载器显式加载的那些驱动程序中查找合适的驱动程序。
【转】
㈣ java中DriverManager跟DataSource获取getConnection有什么不同
java中DriverManager获得连接是直接获取,DataSource获取getConnection是事先通过DriverManager获取了一组连接保存在一个集合中!然后调用getConnection获取连接是直接从该集合中获取而不是去数据获取连接,当关闭连接时,也不是将连接真的关闭,而是将连接再放回DataSource保存连接的集合中!
㈤ java配置连接池时不能得到一个DataSource实例,高手请进!
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/news");
把这句分开写看看。
Context ic = new InitialContext();
Context env = (Context) ic.lookup("java:comp/env");
DataSource ds = (DataSource) env.lookup("jdbc/news");
㈥ Java相关 Spring的 datasource配置的有关问题
下面的bean是对上面数据源的配置,上面的id是什么,下面就必须跟上面一样,上面bean是配置数据源,下面property的name属性就得一样
㈦ 如何获得datasource对象
Java使用JNDI技术获取DataSource对象
JAVA 2009-10-29 11:42:00 阅读466 评论0 字号:大中小 订阅
package common;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
/**
* 通过JNDI获取数据源
* @author 周尚武
* 时间:2008年12月8日22:37:09
*/
public class DBConnection {
/**
* 通过JNDI获取数据源在获取连接对象
* @return Connection con
*/
public static Connection getCon(){
Connection con = null;
try {
Context ic = new InitialContext();
DataSource source = (DataSource)ic.lookup("java:comp/env/jdbc/books");
con = source.getConnection();
} catch (NamingException e) {
System.out.println("数据源没找到!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("获取数连接对象失败!");
e.printStackTrace();
}
return con;
}
}
JNDI的配置:
1.context.xml文件的配置:
<Resource name="jdbc/books"
auth="Container" type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa" password="123"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databasename=books"/>
2.web.xml文件的配置:
<resource-ref>
<res-ref-name> jdbc/books </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
3.添加数据库驱动文件:
通过数据源访问数据库,由于数据源由Tomcat 维护,所有必须把JDBC驱动程序复制到Tomcat的common/lib目录下。
注意:如果要是用的MyEclipce自带的Tomcat可以从Configure中
选中paths-----》在点击Add JAR/ZIP-----》加载相应的JDBC驱动,如下图:
转自:http://yangchao20020.blog.163.com/blog/static/4838224720099291142093/
㈧ java中DriverManager跟DataSource获取getConnection有什么不同
DriverManager获取到的链接一旦关闭就没了,再链接需要重新进行tcpip协议的3次握手建立连接,速度慢
DataSource是数据库连接池,里面的链接是在程序启动的时候创建好的,getConnection的时候只是从池中拿一个已经存在的链接,close的时候并没有实际断开链接,而是放回池中,这么做可以大大提高链接速度和效率
㈨ java中DataSourceTransactionManager作用是什么
DataSourceTransactionManager:事务管理器
对JDBC(Java Data Base Connectivity,java数据库连接)进行事务管理,在spring中是对JdbcTemplate进行事务管理
扩展:
HibernateTransactionManager:是对Hibernate进行事务管理,当在spring中使用HibernateTemplate时,要使用此管理器。
但是当在service的一个方法中同时使用了JdbcTemplate和HibernateTemplate时,就要使用HibernateTransactionManager了,因为当使用DataSourceTransactionManager时,JdbcTemplate和HibernateTemplate获得的connection并不是同一个,也就没办法对service的方法进行事务管理了。
㈩ java datasource什么模式
先看看JDK中对DataSource的描述:
作为 DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。
基本实现 - 生成标准的 Connection 对象
连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池管理器一起使用。
简单来说,就是获取数据库连接的一个通用接口, 常见的dbcp,c3p0,druid,bonecp都是DataSource的实现.