详解JDBC的概念及获取数据库连接的5种方式_第1页
详解JDBC的概念及获取数据库连接的5种方式_第2页
详解JDBC的概念及获取数据库连接的5种方式_第3页
详解JDBC的概念及获取数据库连接的5种方式_第4页
详解JDBC的概念及获取数据库连接的5种方式_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第详解JDBC的概念及获取数据库连接的5种方式目录一、JDBC概念二、JDBC获取数据库连接的5种方式方式一方式二方式三方式四方式五

一、JDBC概念

JavaDataBaseConnectivity(Java数据库连接技术)它是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口(API-它是一种可用于执行SQL语句的JavaAPI,即由一组用Java语言编写的类与接口所组成)

JDBC的设计目的:

它是一种规范,设计出来的主要目的是为了让各个数据库开发商为Java程序员提供标准的数据访问类和接口,使得独立于DBMS的Java应用程序的开发成为可能(数据库改变,驱动程序跟着改变,但是应用程序不变)Java设计规范接口,各大数据库产商遵守规范实现,Java程序员不需要考虑实现细节,只需要调用API即可

JDBC工作的基本流程:

一个基本的JDBC工作流程,分为以下几步:

1、加载特定数据库驱动器实现类,并注册驱动器(Driver会注册到DriverManager中)

2、根据特定的URL,返回可以接受此URL的数据库驱动对象Driver

3、使用数据库驱动Driver创建数据库连接Connection会话

4、使用Connection对象创建用于操作sql的Statement对象

5、statement对象.执行sql语句,返回结果ResultSet对象

6、处理ResultSet中的结果

7、关闭连接,释放资源

二、JDBC获取数据库连接的5种方式

方式一

publicclassConnectionTest{

@Test

publicvoidtestConnection1()throwsSQLException{

//获取Driver实现类对象

Driverdriver=newcom.mysql.jdbc.Driver();

//jdbc:mysql:协议

//localhostip地址

//3306MySQL数据库默认端口号

//test需要连接的数据库名称

Stringurl="jdbc:mysql://localhost:3306/test";

Propertiesinfo=newProperties();

//设置连接的用户名和名称,user和password是固定的写法

info.setProperty("user","root");

info.setProperty("passwor","root");

Connectionconnect=driver.connect(url,info);

System.out.println(connect);

}

方式二

publicclassConnectionTest{

@Test

publicvoidtestConnection2()throwsException{

//1.使用反射获取Driver实现类对象

Classclazz=Class.forName("com.mysql.jdbc.Driver");

Driverdriver=(Driver)clazz.newInstance();

//2.提供需要连接的数据库

Stringurl="jdbc:mysql://localhost:3306/test";

//3.提供连接需要的用户和密码

Propertiesinfo=newProperties();

info.setProperty("user","root");

info.setProperty("password","lxq");

//获取链接

Connectionconnect=driver.connect(url,info);

System.out.println(connect);

}

方式二是方式一的迭代,与方式一相比没有出现第三方的API,有较好的移植性

方式三

publicclassConnectionTest{

@Test

publicvoidtestConnection3()throwsException{

//1.使用反射获取Driver实现类对象

Classclazz=Class.forName("com.mysql.jdbc.Driver");

Driverdriver=(Driver)clazz.newInstance();

//2.提供需要连接的数据库

Stringurl="jdbc:mysql://localhost:3306/test";

//3.提供连接需要的用户和密码

Stringuser="root";

Stringpasswor="root";

//4.注册驱动

DriverManager.registerDriver(driver);

//5.获取连接

Connectionconnection=DriverManager.getConnection(url,user,passwor);

System.out.println(connection);

}

使用DriverManager(驱动管理器)替换Driver,DriverManager是jdk提供的一个类,用来完成获取连接的操作

方式四

publicclassConnectionTest{

@Test

publicvoidtestConnection4()throwsException{

//1.提供连接所需信息

Stringurl="jdbc:mysql://localhost:3306/test";

Stringuser="root";

Stringpasswor="root";

//2.使用反射加载驱动

Class.forName("com.mysql.jdbc.Driver");

//3.获取连接

Connectionconnection=DriverManager.getConnection(url,user,passwor);

System.out.println(connection);

}

与方式三相比,方式四省略了如下代码:

Driverdriver=(Driver)clazz.newInstance();

DriverManager.registerDriver(driver);

理由是,在com.mysql.jdbc.Driver类中有如下所示的静态代码块,使用Class.forName()加载这个驱动时就会执行这个静态代码块,实现了注册驱动

static{

try{

DriverManager.registerDriver(newDriver());

}catch(SQLExceptionvar1){

thrownewRuntimeException("Can'tregisterdriver!");

方式五

publicclassConnectionTest{

@Test

publicvoidtestConnection5()throwsException{

//1.获取连接所需信息

InputStreamis=ConnectionTest.class.getClassLoader().getResourceAsStream("perties");

Propertiesinfo=newProperties();

info.load(is);

Stringurl=info.getProperty("url");

Stringuser=info.getProperty("user");

Stringpassword=info.getProperty("passwor");

StringdriverClass=info.getProperty("driverClass");

//2.使用反射加载驱动

Class.forName(driverClass);

//5.获取连接

Connectionconnection=DriverManager.getConnection(url,user,passwor);

System.out.println(c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论