DB的连接方式练习
Today,测试java DB的连接方式。
目前就我所知了解的有两种:
jdbc代码链接
dataSource 链接
下面来详细了解一下这两种连接方式
第一种 JDBC连接,对此我们需要了解一下JAVA的相关类 javax.sql类
软件包 javax.sql
为通过java 编程语言进行的服务器端数据源访问和处理提供API
接口摘要
CommonDataSource 此接口定义在DataSource 、XADataSource 和 ConnectionPollDataSource 之间共用方法
1.所有子接口 ConnectionPoolDataSource DataSource XADataSource
2.方法摘要
a. int getLoginTimeout() 获取此数据源试图连接到某以数据库时可以等待的最长时间,一秒位单位
b.PrintWriter getLogWriter() 获取此DataSource 对象日志 write.
c.void setLoginTimeout(int seconds) 设置此数据源试图连接到某以数据库时将等待的最长时间,一秒为单位
d. setLogWriter(PrintWriter out) 将此DataSource 对象的日志writer设置为给定的java.io.PrintWriter
以上是超级接口CommonDataSource的方法,以及已知的子接口
下面说说三个子接口
ConnectionPoolDataSource
PooledConnection对象工厂
方法是继承了父类CommonDataSource的方法 getLoginTimeOut setLoginTimeOut setLogWriter getLogWriter,自己的方法有:
PooledConnection getPooledConnection()尝试建立可用作入池连接的物理数据库连接
PooledConnection getPooledConnection(String usr,String password)尝试建立可用作入池连接的物理数据库连接
接口DataSource
DataSource 这个接口不仅继承了CommonDataSource 还 继承了Wrapper
该工厂用于提供到此DataSource 对象所表示的物理数据源的连接。作为DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。实现DataSource接口的对象通常在基于Java Naming and Directory Interface (JNDI) API的命名服务中注册。
DataSource 接口由驱动程序供应商实现。共有三种类型实现:
基本实现 - 生成标准的 Connection对象
连接池实现 - 生成自动参玉连接池的Connection对象,此实现与中间层连接池管理器一起使用
分布式事务实现 - 生成一个Connection 对象,该对象可用于分布式事务,大多数情况下总是参与连接池。此实现与中间层事务管理器一起使用,大多数情况下总是与连接池管理器一起使用。
DataSource 对象的属性在必要的时候可以修改。列如,如果将数据源移动到另一个服务器,则可以更改与服务器相关的属性。其优点在于,由于可以更改数据源的属性,所以任何访问该数据源的代码都无需更改
通过DataSource对象访问的驱动程序本身不会向DriverManager注册 通过查找操作获取DataSource对象,然后使用该对象创建Connection对象 使用基本的实现,通过DataSource对象获取的连接与通过DriverManager设施获取的连接相同。
DataSource自身的方法
Connection getConnection() 尝试建立与此DataSource对象所表示的数据源的连接
Connection getConnection(String username,String passward) 尝试建立与此DataSource对象所表示的数据源连接
继承的方法 CommonDataSource Wrapper,CommonDataSource上面有讲解就不再重复,说下Wrapper的方法
boolean isWrappseFor(Class iface)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341