版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
谈谈JDBC数据库连接技术JDBC技术JDBC是JavaDatabaseConnectivity技术的简称,它是Java进行数据库编程的API,为开发人员提供了一套访问各种数据库的标准编程接口。这个标准编程接口,使得基于多种后台数据库的程序开发变得非常容易实现,开发人员只要使用JDBCAPI开发一个数据库访问程序就可以了,没有必要为访问SQLServer数据库写一个程序,为访问Oracle数据库专门写一个程序,或者为访问MySQL数据库又写另一个程序。JDBCAPI主要由一些接口组成,这些接口定义了用于数据库访问的许多方法,主要实现了下图所示的功能:programprogramDatabase数据库连接结果SQL语句图1建立与数据库的连接发送SQL语句至数据库执行处理SQL执行结果其中,建立数据库连接是进行数据库编程的基础,在建立好连接的基础之上才能进行程序与数据库之间的信息传递,本文就着重介绍了使用JDBC获取各种常见数据库的连接对象的方法。JDBCAPI提供了Java程序访问数据库的统一编程接口,使得访问不同的数据库编码可以是一致的,但对于特定的数据库,需要这些接口针对特定数据库的具体实现。数据库引擎开发商和第三方厂商就针对特定数据库引擎提供了这些接口的实现方法,这种实现称为JDBC驱动程序(JDBCDriver)。开发数据库应用程序时,必须提供合适的JDBCDrvier。JDBC驱动程序可以分为以下4类:第1类:JDBC-ODBC桥接器。JDK中即提供了该桥接器,JDBC-ODBC桥将JDBC调用翻译成对应的ODBC(OpenDatabaseConnectivity,开放数据库互联)调用,然后使用ODBC驱动程序与各种数据库进行通信。不过在使用这个桥接器之前需要对ODBC数据源进行相应的部署和正确的设置。JDBC-ODBC桥接器的使用如图2所示。Java程序JDBC-ODBC桥Java程序JDBC-ODBC桥ODBC驱动DBSQL语句结果Java程序结果SQL语句结果SQL语句第2类JDBC驱动第2类JDBC驱动本地代码本地代码DBDB图2图3第2类:此类驱动程序由部分Java程序和部分本地代码组成,在使用这种驱动程序时,不仅需要安装Java类库,还需要安装一些与平台相关的代码,如图3所示。第3类:此类驱动程序是JDBC网络纯Java驱动程序,它使用一种与具体数据库无关的协议将数据库请求发送给服务器中间件,然后该中间件再将数据库请求翻译成特定数据库协议。如图4所示。Java程序第3类JDBC驱动Java程序第3类JDBC驱动服务器中间件DBSQL语句结果Java程序第4类JDBC驱动DBSQL语句结果图4图5第4类:此类驱动程序是本地协议纯Java驱动程序,它将JDBC调用直接转换成特定的数据库协议,这将使得客户端程序可以直接调用特定的数据库服务器。JDBC连接数据库的实例采用第4类驱动程序直连各种数据库的通用步骤为:加载数据库驱动程序获取数据库连接对象上述2个步骤可以使用如下2条Java语句实现:Class.forName(“驱动程序类名”); //conn为连接对象名conn=DriverManager.getConnection(“数据库URL”,”数据库账户名”,”密码”);其中,数据库驱动程序一般由数据库引擎开发商或第三方厂商提供,以JAR包的形式发布,通常从数据库厂商的官网上即可下载,驱动程序中提供了针对特定数据库的JDBCAPI的具体实现。数据库URL则用于指明数据源的地址,不同的数据库驱动程序有各自的数据库URL书写格式,该书写格式在各驱动程序的帮助文档中可以找到。下面介绍JDBC连接数据库的一个实例:连接MySQL的数据库db1(如图6所示)显示拿到的连接对象(如图7所示)。图6图7实现步骤:(1)备好连接MySQL数据库的驱动程序JAR包,如mysql-connector-java-5.0.4-bin.jar。(2)在MyEclipse中新建JavaWeb项目getconn,将上述驱动程序复制到getconn\WebRoot\WEB-INF\lib目录下,注意不要放错位置。(3)新建类MyConnection,编码获取MySQL数据库的连接。packagedao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassMyConnection{ publicConnectiongetConn(){ Connectionconn=null;//conn:数据连接对象 StringdriverName="com.mysql.jdbc.Driver"; Stringdburl="jdbc:mysql://localhost:3306/db1";//db1为数据库名 try{ Class.forName(driverName);//加载驱动 conn=DriverManager.getConnection(dburl,"root","123456");//root为MySQL的系统管理员账户,密码应视实际情况而做修改 }catch(ClassNotFoundExceptione1){ System.out.println(e1.getMessage()); }catch(SQLExceptione2){ System.out.println(e2.getMessage()); } returnconn; }}(4)在index.jsp的<body></body>之间添加如下代码,显示连接对象。 <h2> 连接MySQL数据库db1的连接对象是: <jsp:useBeanid="con"class="dao.MyConnection"/> <%=con.getConn()%> </h2>(5)将getconn项目发布运行。 JDBC连接其它常见数据库连接SQLServer数据库以连接SQLServer2000数据库为例,首先准备好连接SQLServer2000的数据库驱动程序JAR包,共3个:mssqlserver.jar、msutil.jar、msbase.jar,再编码获取SQLServer2000数据库的连接对象,核心代码如下所示。Connectionconn=null; //conn:数据连接对象 StringdriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"; Stringdburl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db1";//db1为数据库名 try{ Class.forName(driverName); //加载驱动 conn=DriverManager.getConnection(dburl,"sa","sa"); //sa为SQLServer2000的系统管理员账户,密码应视实际情况而做修改 }catch(ClassNotFoundExceptione1){ System.out.println(e1.getMessage()); }catch(SQLExceptione2){ System.out.println(e2.getMessage()); } 补充说明:(1)连接SQLServer2000时,必须保证其提供服务的端口1433是打开的状态。而一般安装的SQLServer2000sp2版本在WindowsXP环境中1433端口未开,这会导致连接失败。解决这一问题的方法是:安装SQLServer2000SP4补丁包。(2)连接SQLServer2005时,代码与上述代码几乎完全一致(sa账号的密码要视实际情况而定)。但驱动程序应使用SQLServer2005的JDBC驱动包,驱动包只有只有1个jar文件,名如:sqljdbc.jar,驱动包可以到微软官网上下载。连接Oracle10g数据库准备好连接Oracle10g的数据库驱动程序JAR包,如:ojdbc14.jar。Oracle的JDBC驱动程序在Oracle10g安装目录的lib目录中即可找到。编码获取Oracle10g数据库的连接对象,核心代码如下所示。Connectionconn=null; //conn:数据连接对象 StringdriverName="oracle.jdbc.driver.OracleDriver"; Stringdburl="jdbc:oracle:thin:@localhost:1521:orcl";//orcl为Oracle的数据库SID try{ Class.forName(driverName); //加载驱动 conn=DriverManager.getConnection(dburl,"system","orcl"); //system为Oracle的系统管理员账户,密码应视实际情况而做修改 }catch(ClassNotFoundExceptione1){ System.out.println(e1.getMessage()); }catch(SQLExceptione2){ System.out.println(e2.getMessage()); } 结束语实际应用中多采用MySQL、SQLServer或Oracle作为后台数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026首都机场集团校园招聘历年真题汇编带答案解析
- 2026年甘肃交安c证试题及答案(含解析)
- 2026年数据知识产权登记保护试点及数据资产入表衔接试题
- 水库移民后期扶持项目使用林地可行性报告
- 2026年历年湖南怀化公开银行招聘笔试试题及答案
- 生态旅游项目农用地转用方案
- 2026年5月23日广东省湛江吴川事业单位面试真题及答案解析
- 暖通工程安装方案
- 2025四川东兴区惠和保安服务有限公司招聘1人笔试历年常考点试题专练附带答案详解
- 2025华夏银行社会招聘笔试历年典型考题及考点剖析附带答案详解2套
- 2026-2030中国染发剂行业现状调查与发展前景预测分析研究报告
- 2026山东师范大学综合评价综合素质考核笔试+面试模拟试题(二)
- 2026江苏苏州常熟市融媒体中心(传媒集团)招聘7人备考题库有答案详解
- 雨课堂学堂在线学堂云《自然辩证法概论(北京航空航天)》单元测试考核答案
- GB/T 15153.1-2024远动设备及系统第2部分:工作条件第1篇:电源和电磁兼容性
- 建设单位工程通知单
- 砂浆回弹计算表(正算)
- 2022年黄陵县小升初英语考试试题及答案解析
- GB/T 34881-2017产品几何技术规范(GPS)坐标测量机的检测不确定度评估指南
- GB/T 2305-2000化学试剂五氧化二磷
- 三年级语文下册-习作八《我想变成XX》4课件
评论
0/150
提交评论