java中连接数据库的方式,有JDBC还有什么

java中连接数据库的方式,有JDBC还有什么,第1张

这是老师发给我们的资料,共享给你:\x0d\Type 1: jdbc-odbc桥 \x0d\Jdbc-odbc 桥 是sun公司提供的,是jdk提供的的标准api 这种类型的驱动实际是把所有 jdbc的调用传递给odbc ,再由odbc调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库 *** 作二进制代码库,例如在oracle for windows中就是oci dll 文 件) \x0d\\x0d\jdbc-odbc桥|odbc|厂商DB代码---数据库Server\x0d\\x0d\只要本地机装有相关的odbc驱动那么采用jdbc-odbc桥几乎可以访问所有的数据库,jdbc- odbc方法对于客户端已经具备odbc driver的应用还是可行的\x0d\\x0d\但是,由于jdbc-odbc先调用 odbc再由odbc去调用本地数据库接口访问数据库所以,执行效率比较低,对于那些大数据量 存取的应用是不适合的而且,这种方法要求客户端必须安装odbc 驱动,所以对于基于 internet ,intranet的应用也是不合适的因为,你不可能要求所有客户都能找到odbc driver \x0d\\x0d\=====一般ACCESS用到的比较多,初学者用。实际项目是不用的。\x0d\\x0d\Type 2: 本地Api驱动 \x0d\\x0d\本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问数据库\x0d\\x0d\这种方法需要本地 数据库驱动代码 本地api驱动|厂商DB代码---数据库Server这种驱动比起jdbc-odbc桥执行效率大大提高了但是,它仍然需要在客户端加载数据库厂商 提供的代码库这样就不适合基于internet的应用并且,他的执行效率比起3,4型的jdbc驱动 还是不够高 \x0d\\x0d\Type3:网络协议驱动 这种驱动实际上是根据我们熟悉的三层结构建立的 jdbc先把对数局库的访问请求传递给网 络上的中间件服务器 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 jdbc驱动程序作为访问数据库的方法 网络协议驱动--中间件服务器---数据库Server \x0d\\x0d\由于这种驱动是基于server的所以,它不需要在客户端加载数据库厂商提供的代码库而且 他在执行效率和可升级性方面是比较好的因为大部分功能实现都在server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中 但是,这种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好 \x0d\\x0d\Type4 纯JAVA驱动 \x0d\这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求由于4型驱动写的应用可 以直接和数据库服务器通讯这种类型的驱动完全由java实现,因此实现了平台独立性 本地协议驱动---------数据库Server \x0d\\x0d\由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是中间层服务器所 以它的执行效率是非常高的而且,它根本不需要在客户端或服务器端装载任何的软件或驱动 这种驱动程序可以动态的被下载但是对于不同的数据库需要下载不同的驱动程序 \x0d\\x0d\以上对四种类型的jdbc驱动做了一个说明那么它们适合那种类型的应用开发呢 \x0d\\x0d\Jdbc-odbc桥由于它的执行效率不高,更适合做为开发应用时的一种过度方案,或着对于初学 者了解jdbc编程也较适用 对于那些需要大数据量 *** 作的应用程序则应该考虑2,3,4型驱动在intranet方面的应用可以 考虑2型驱动,但是由于3,4型驱动在执行效率上比2型驱动有着明显的优势,而且目前开发 的趋势是使用纯java所以3,4型驱动也可以作为考虑对象 至于基于internet方面的应用就只有考虑3,4型驱动了 因为3型驱动可以把多种数据库驱 动都配置在中间层服务器所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用 4型驱动则适合那些连接单一数据库的工作组应用。\x0d\\x0d\现在是纯java 开发,所以一般都用type4的jdbc driver。

我选择的是SQL Server 2000数据库, *** 作系统是XP,下面把配置的整个过程描述一遍: (1)安装SQL Server 2000数据库。 在XP下,是不能安装SQL Server 2000数据库的企业版的,可以安装标准版或者开发版,评估版也可以。我选择的是开发版。安装的时候我是把光盘中的内容先栲到硬盘,从硬盘安装的。因为直接从光盘安装总是有一些文件不能拷贝,从而导致中断安装过程。 (2)安装Sql2ksp3exe文件 这个文件是用来对SQL Server 2000数据库从sp1升级到sp3的,因为用JDBC与SQL Server 2000数据库连接,必须要求它是SP3或者SP4的。这个安装文件可以从Microsoft的技术Support网页下载。大概有55M左右,我是从某个FTP下载的,因为这样速度比较快。特别需要注意的是,如果你的SQL Server 2000数据库是中文版的,那么Sql2ksp3exe也应该是中文版的。所以需要下载chs_Sql2ksp3exe安装这个文件是首先解压缩到一个文件夹,默认是sql2ksp3,然后运行这个文件夹里的setupexe就可以安装。(3)安装JDBC的驱动程序 从网上找到一个针对SP3数据库的JDBC驱动程序,直接运行安装,成功安装之后,会出现开始---程序---Microsoft sql server 2000 driver for jdbc驱动程序安装完成之后,默认在C盘生成一个文件夹Microsoft sql server 2000 driver for jdbc里有一个lib的文件夹里有三个jar文件,直接把它们拷贝到tomcat\commn\lib即可。(4)端口1433 在成功完成上述 *** 作之后,用JDBC与sql server 2000 driver 需要用到1433端口,可以在DOS下,通过命令netstat -a -n 查看该端口是否打开。如果没有打开是不能进行数据库的连接的。(5)写程序与数据库连接。

JDBC连接不同数据库的写法如下:

1、Oracle8/8i/9i数据库(thin模式)

ClassforName("oraclejdbcdriverOracleDriver"); 

String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID 

String user="test"; 

String password="test"; 

Connection conn= DriverManagergetConnection(url,user,password);

2、SQL Server2005及以上版本数据库

ClassforName("commicrosoftsqlserverSQLServerDriver"); 

String url="jdbc:sqlserver://localhost:1433;DatabaseName=mydb"; 

//mydb为数据库 

String user="sa"; 

String password=""; 

Connection conn= DriverManagergetConnection(url,user,password);

3、MySQL数据库

ClassforName("commysqljdbcDriver"); 

String url ="jdbc:mysql://localhost/myDB

user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 

//myDB为数据库名 

Connection conn= DriverManagergetConnection(url);

4、DB2数据库

ClassforName("comibmdb2jdbcappDB2Driver ")newInstance(); 

String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 

String user="admin"; 

String password=""; 

Connection conn= DriverManagergetConnection(url,user,password);

5、Sybase数据库

ClassforName("comsybasejdbcSybDriver")newInstance(); 

String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名 

Properties sysProps = SystemgetProperties(); 

SysPropsput("user","userid"); 

SysPropsput("password","user_password"); 

Connection conn= DriverManagergetConnection(url, SysProps);

6、Informix数据库

ClassforName("cominformixjdbcIfxDriver")newInstance(); 

String url = "jdbc:informix-sqli://123456789:1533/myDB:INFORMIXSERVER=myserver; 

user=testuser;password=testpassword"; //myDB为数据库名 

Connection conn= DriverManagergetConnection(url);

7、PostgreSQL数据库

ClassforName("orgpostgresqlDriver")newInstance(); 

String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 

String user="myuser"; 

String password="mypassword"; 

Connection conn= DriverManagergetConnection(url,user,password);

8、access数据库直连用ODBC的

ClassforName("sunjdbcodbcJdbcOdbcDriver") ;

String url="jdbc:odbc:Driver={MicroSoft Access Driver 

(mdb)};DBQ="+applicationgetRealPath("/Data/ReportDemomdb");

Connection conn = DriverManagergetConnection(url,"","");

Statement stmtNew=conncreateStatement() ;

JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。

JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。

首先安装office2000,就有了Access2000,启动Access,建立新数据库messmdb,建立包含两个文本型字段name和sex的表,表名为member,随便录入一些字符串到member表中,保存在任意目录下,比如说C盘下。然后打开控制面板 -> 管理工具 -> 数据源 (ODBC),选择"系统DSN",也可以选择"用户DSN"选项卡,系统的DSN对每个用户都适用可避免调试时出现的权限问题,单击“添加”,

点击"完成",d出的对话框里将"数据源名"一项设为你喜欢的名字,比如redsun。点"选择",找到"C:\messmdb"文件,如此一个ODBC数据源就配置好了。

要连接该数据源,也就是连接数据库,首先要建立一个JDBC-ODBC桥接器,上面已经说过了,其方法是:

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Class 是Javalang包中的一个类,通过调用它的静态方法forName就可以建立桥接器。但建立桥接器时可能发生异常,这是我们所不想见到的,因此要捕获这个异常:

try{

ClassforName("sunjdbcodbcJdbcOdbcDriver");

}

catch(ClassNotFoundException e){异常捕获}

然后就是连接数据库了,这里要用到javasql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法getConnection创建这个连接。

Connection con=DriverManagergetConnection("jdbc:odbc:数据源名字","数据源用户名","数据源密码");

为防止连接出现异常,这里也要有个异常的处理,具体看代码:

=========accessjava============

程序代码

import javasql;

public class access{

public static void main(String args[]){

Connection con;

Statement sql; //声明Statement对象

ResultSet rs;

try{

ClassforName("sunjdbcodbcJdbcOdbcDriver");

}

catch(ClassNotFoundException e){

Systemoutprintln(""+e);

}

try{

con=DriverManagergetConnection("jdbc:odbc:redsun","","");

sql=concreateStatement();

rs=sqlexecuteQuery("Select FROM member");

while(rsnext()){

String name=rsgetString(1); //获得数据库第一列

String sex=rsgetString(2);

Systemoutprintln("姓名:"+name); //输出信息

Systemoutprintln("性别:"+sex);

}

conclose();

}

catch(SQLException el){}

}

}

编绎accessjava, 然后在命令提示符中先切换到编绎后的accessclass的目录,执行:

java access 回车

以上这个例子只是简单的连接数据库,并静态游标方式显示数据,更新、删除和添加数据库以前学过sql的很容易理解,语法为:

String xx="sql语句";

Statement对象executeUpdate(xx);

jdbc是提供给java访问数据库的连接方式,在任何时候都可以创建,而在实际应用中,因为创建连接和销毁连接都会有系统(创建时间、内存等)的损耗,为了减少这种损耗,在系统启动时就创建一定数量的jdbc连接,在需要使用时派发一个连接,使用完以后收回,而不再需要临时创建,那么这些jdbc连接就统称为数据库连接池

JDBC其实就是接口标准,不涉及具体的实现。

JDBC的实现是由数据库的驱动程序来完成,换句话:数据库的驱动程序实现了JDBC。

因此,JDBC不会实现具体的协议。数据库驱动依据数据自有的特性来完成于数据库的通讯。对程序员来说,具体如何实现通讯是透明的。

以上就是关于java中连接数据库的方式,有JDBC还有什么全部的内容,包括:java中连接数据库的方式,有JDBC还有什么、XP *** 作系统下,JDBC如何连接SQL Server 2000数据库、java JDBC连接不同的数据库写法sql,oracle,mysql等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9805381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存