• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > JDBC--数据库管理系统

JDBC--数据库管理系统

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了JDBC,数据库,管理系统等相关知识,希望本文的分享对您有所帮助

1-JDBC概述

序言:数据持久化

持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。

Java 中的数据存储技术

在Java中,数据库存取技术可分为如下几类:

JDBC直接访问数据库
JDO技术
第三方O/R工具,如Hibernate, ibatis 等

JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。

JDBC基础

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库(java.sql,javax.sql)使用这个类库可以以一种标准的方法、方便地访问数据库资源JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。
JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

JDBC体系结构

JDBC接口(API)包括两个层次:

面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。

JDBC是sun公司提供一套用于数据库操作的接口,java程序员只需要面向这套接口编程即可。不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。————面向接口编程

JDBC驱动程序分类。

JDBC驱动程序:各个数据库厂商根据JDBC的规范制作的 JDBC 实现类的类库
JDBC驱动程序总共有四种类型:

第一类:JDBC-ODBC桥。
第二类:部分本地API部分Java的驱动程序。
第三类:JDBC网络纯Java驱动程序。
第四类:本地协议的纯 Java 驱动程序。

第三、四两类都是纯Java的驱动程序,因此,对于Java开发者来说,它们在性能、可移植性、功能等方面都有优势。

第一类:ODBC

早期对数据库的访问,都是调用数据库厂商提供的专有的 API。为了在 Windows 平台下提供统一的访问方式,微软推出了 ODBC(Open Database Connectivity,开放式数据库连接),并提供了 ODBC API,使用者在程序中只需要调用 ODBC API,由 ODBC 驱动程序将调用转换成为对特定的数据库的调用请求一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS(database manager system),不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access ,MYSQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
JDBC-ODBC桥
JDBC-ODBC 桥本身也是一个驱动,利用这个驱动,可以使用 JDBC-API 通过ODBC 去访问数据库。这种机制实际上是把标准的 JDBC 调用转换成相应的 ODBC 调用,并通过 ODBC 访问数据库因为需要通过多层调用,所以利用 JDBC-ODBC 桥访问数据库的效率较低在 JDK 中,提供了 JDBC-ODBC 桥的实现类(sun.jdbc.odbc.JdbcOdbcDriver)。

第二类:部分本地API部分Java的驱动程序

这种类型的 JDBC 驱动程序使用 Java 编写,它调用数据库厂商提供的本地 API通过这种类型的 JDBC 驱动程序访问数据库减少了 ODBC 的调用环节,提高了数据库访问的效率在这种方式下需要在客户的机器上安装本地 JDBC 驱动程序和特定厂商的本地 API 。

第三类:JDBC网络纯Java驱动程序

这种驱动利用中间件的应用服务器来访问数据库。应用服务器作为一个到多个数据库的网关,客户端通过它可以连接到不同的数据库服务器。
应用服务器通常有自己的网络协议,Java 用户程序通过 JDBC 驱动程序将 JDBC 调用发送给应用服务器,应用服务器使用本地程序驱动访问数据库,从而完成请求。

第四类:本地协议的纯 Java 驱动程序

多数数据库厂商已经支持允许客户程序通过网络直接与数据库通信的网络协议。
这种类型的驱动程序完全使用 Java 编写,通过与数据库建立的 Socket 连接,采用具体与厂商的网络协议把 JDBC 调用转换为直接连接的网络调用JDBC API。

JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。


2-获取数据库连接

Driver 接口

java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。

Oracle的驱动:oracle.jdbc.driver.OracleDriver
mySql的驱动: com.mysql.jdbc.Driver

加载与注册 JDBC 驱动

方式一:加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名

Class.forName(“com.mysql.jdbc.Driver”);

方式二:DriverManager 类是驱动程序管理器类,负责管理驱动程序

DriverManager.registerDriver(com.mysql.jdbc.Driver);

通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例。

建立连接(Connection)

可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接。
User,password可以用“属性名=属性值”方式告诉数据库;
JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
JDBC URL的标准由三部分组成,各部分间用冒号分隔。
jdbc:子协议:子名称
协议:JDBC URL中的协议总是jdbc 。
子协议:子协议用于标识一个数据库驱动程序。
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号,数据库名。

几种常用数据库的JDBC URL

jdbc:mysql://localhost:3306/test
协议 子协议 子名称
对于 Oracle 数据库连接,采用如下形式:
jdbc:oracle:thin:@localhost:1521:atguigu
对于 SQLServer 数据库连接,采用如下形式:
jdbc:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • jdbc操作数据库的基本流程详解
  • 深入JDBC sqlserver连接写法的详解
  • JDBC数据库的使用操作总结
  • jdbc调用mysql存储过程实现代码
  • MyEclipse通过JDBC连接MySQL数据库基本介绍
  • MySQL数据库服务器逐渐变慢分析与解决方法分享
  • mysql数据库replace、regexp的用法
  • mysql数据库从服务器移植到个人PC的方法
  • 不使用MySQL数据库的五个给力理由解析
  • JDBC连接MySQL出现的问题

相关文章

  • 2018-12-05Oracle数据库密码文件的使用与维护
  • 2017-08-25Mysql中各类型对应JDBC类型编号
  • 2018-12-05传智播客刘道成MySql系列视频资料分享
  • 2018-12-05数据库更新Sqlserver脚本总结
  • 2018-12-05MySql中表的删除操作
  • 2018-12-05MySQL避免索引列使用 OR 条件
  • 2018-12-05SQL数据操作基础(中级)6
  • 2018-12-05MySQL 最基本的SQL语法/语句
  • 2018-12-05请问在mssql“SQL事件探查器”里表格的标题,如CPU,Read,Write
  • 2018-12-05oracle保留两位小数解决方案

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 选择MySQL数据库进行连接的简单示例
    • MySQL之-实现MSS主从复制(读写分离)的示例代码
    • 详解介绍MySQL5.6.31 winx64.zip安装配置的图文教程
    • 解析优化MySQL插入方法的五个妙招
    • sqlserver 禁用触发器和启用触发器的语句
    • 教你如何启动和停止Mysql服务之一
    • My Sql 1067错误兼编码问题解决
    • MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
    • mysql数据库备份及恢复命令 mysqldump,source的用法
    • php从数据库中读取特定的行实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有