java driver是什么 java jdbc驱动的四种类型请问具体都是什么意思
今天给各位分享java driver是什么的知识,其中也会对java jdbc驱动的四种类型请问具体都是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
(java)Java连接Oracle的字符串和Oracle的驱动名是什么
SUN定义的四种JDBC驱动程序标准:
Ø Type1 JDBC-ODBC桥
适用于快速的原型系统,没有提供JDBC驱动的数据库如Access
Ø Type2 JAVA to Native API
利用开发商提供的本地库来直接与数据库通信。
比Type1性能略好。
Ø Type3 Java to net
具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。
Ø Type4 JAVA to native dababase
最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力
-----------------------------------------------------------------------------------------
Oracle公司大力的发展Java,又许多东西都改为 Java Base的。在JDBC驱动方面,斯中驱动类型全部都提供了,可以说是最齐全的数据库厂商
Oracle的JDBC驱动为classes12.jar,如果Oracle安装目录为E:\Oracle而classes12.jar文件位于E:\oracle\product\10.2.0\db_1\jdbc\lib的路径下。
Oracle目前有两个驱动程序可以供客户端使用,两个驱动程序分别提供了Type2,Type3,Typ4的JDBC驱动程序。令各驱动程序分别为ThinDriver和OCI Driver。
l Thin Driver—Type3 or Type4 JDBC驱动程序,100%Java的程序代码。
OCIDriver—Type2 JDBC驱动程序,客户端必须安装有Oracle Client
-----------------------------------------------------------------------------
不论那一种Oracle JDBC驱动程序。都是使用oracle.jdbc.driver.OracleDriver类
--------------------------------------------------------------------------------
使用 import指令导入importjava.sql.*类中的类型。
定义数据库连接使用的一些常量。如下:
publicclassConnectionManager{
privatestaticfinalStringDRIVER_CLASS="oracle.jdbc.driver.OracleDriver";
privatestaticfinalStringDATABASE_URL="jdbc:oracle:thin@localhost:1521:accp";
privatestaticfinalStringDATABASE_USRE="student";
privatestaticfinalStringDATABASE_PASSWORD="cs";
}
连接url种类与写法:
Type2:jdbc:oracle:oci:@TNSNAMES
Type3:jdbc:oracle:thin:@url
Type4:jdbc:oracle:thin:@hostname:port:service
java jdbc驱动的四种类型请问具体都是什么意思
type 1:jdbc-odbc桥
type 2:本地api驱动
type 3:网络协议驱动
type 4:本地协议驱动
Type 1: jdbc-odbc桥
Jdbc-odbc桥是sun公司提供的,是jdk提供的的标准api.这种类型的驱动实际是把所有 jdbc的调用传递给odbc,再由odbc调用本地数据库驱动代码.(本地数据库驱动代码是指由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll文件)
jdbc-odbc桥| odbc|厂商DB代码---------------数据库Server
只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的.
但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库.所以,执行效率比较低,对于那些大数据量存取的应用是不适合的.而且,这种方法要求客户端必须安装odbc驱动,所以对于基于 internet,intranet的应用也是不合适的.因为,你不可能要求所有客户都能找到odbc driver.
=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。
Type 2:本地Api驱动
本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库.
这种方法需要本地数据库驱动代码.本地api驱动|厂商DB代码---------------数据库Server(图二)这种驱动比起jdbc-odbc桥执行效率大大提高了.但是,它仍然需要在客户端加载数据库厂商提供的代码库.这样就不适合基于internet的应用.并且,他的执行效率比起3,4型的jdbc驱动还是不够高.
Type3:网络协议驱动这种驱动实际上是根据我们熟悉的三层结构建立的. jdbc先把对数局库的访问请求传递给网络上的中间件服务器.中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器.如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法.网络协议驱动---------中间件服务器------------数据库Server
由于这种驱动是基于server的.所以,它不需要在客户端加载数据库厂商提供的代码库.而且他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在server端,所以这种驱动可以设计的很小,可以非常快速的加载到内存中.但是,这种驱动在中间件层仍然需要有配置其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好.
Type4本地协议驱动
这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性.本地协议驱动---------数据库Server
由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器.所以它的执行效率是非常高的.而且,它根本不需要在客户端或服务器端装载任何的软件或驱动.这种驱动程序可以动态的被下载.但是对于不同的数据库需要下载不同的驱动程序.
以上对四种类型的jdbc驱动做了一个说明.那么它们适合那种类型的应用开发呢?
Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学者了解jdbc编程也较适用.对于那些需要大数据量操作的应用程序则应该考虑2,3,4型驱动.在intranet方面的应用可以考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发的趋势是使用纯java.所以3,4型驱动也可以作为考虑对象.至于基于internet方面的应用就只有考虑3,4型驱动了.因为3型驱动可以把多种数据库驱动都配置在中间层服务器.所以3型驱动最适合那种需要同时连接多个不同种类的数据库,并且对并发连接要求高的应用. 4型驱动则适合那些连接单一数据库的工作组应用。
现在是纯java开发,所以一般都用type4的jdbc driver。
java chromedriver怎么用
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class ExampleForChrome{
public static voidmain(String[] args) throws IOException{
//设置 chrome的路径(如果你安装chrome的时候用的默认安装路径,则可省略这步)
System.setProperty("webdriver.chrome.driver","C:/Users/sunlc/AppData/Local/Google/Chrome/Application/chrome.exe");
//创建一个 ChromeDriver的接口,用于连接 Chrome(chromedriver.exe的路径可以任意放置,只要在newFile()的时候写入你放的路径即可)
@SuppressWarnings("deprecation")
ChromeDriverService service= newChromeDriverService.Builder().usingDriverExecutable(
newFile("E:/lib/selenium/dirver/chromedriver_2.9.exe")).usingAnyFreePort().build();
service.start();
//创建一个 Chrome的浏览器实例
WebDriver driver= newRemoteWebDriver(service.getUrl(),
DesiredCapabilities.chrome());
//让浏览器访问 Baidu
driver.get("http://www.baidu.com");
//用下面代码也可以实现
//driver.navigate().to("http://www.baidu.com");
//获取网页的 title
System.out.println(" Page title is:"+driver.getTitle());
//通过 id找到 input的 DOM
WebElement element=driver.findElement(By.id("kw1"));
//输入关键字
element.sendKeys("zTree");
//提交 input所在的 form
element.submit();
//通过判断 title内容等待搜索页面加载完毕,间隔秒
(new WebDriverWait(driver, 10)).until(newExpectedCondition(){
publicBoolean apply(WebDriver d){
returnd.getTitle().toLowerCase().startsWith("ztree");
}
});
//显示搜索结果页面的 title
System.out.println(" Page title is:"+driver.getTitle());
//关闭浏览器
driver.quit();
//关闭 ChromeDriver接口
service.stop();
}
}
java连接数据库驱动的那个jar到底起什么作用
jdk本身没有提供访问数据库的能力,它只是提供了一些接口,具体功能由各个数据库的的驱动jar包来实现,举个例子,Connection它只是一个接口,具体的实现由具体的数据库的的驱动jar包实现,你可以在mysql的驱动jar包中找到这个接口的实现。那数据库的驱动jar包是如何和jdk相关的数据库访问类,接口相关联的呢?是能通 Class.forName,这就是为什么在访问数据库之前都要写一句Class.forName("com.mysql.jdbc.Driver")。
如果你还想了解更多这方面的信息,记得收藏关注本站。