一个网络关系数据库应用系统是一个三层次结构。客户机与服务器采用网络连接,客户机端应用程序按通信协议与服务器端的数据库程序通信;数据库服务程序通过SQL命令与数据库管理系统通信。

Java程序与数据库连接方法有两种。一种是使用JDBC-ODBC桥接器与数据库连接,一种是用纯Java的JDBC驱动程序实现与数据库连接。

使用JDBC-ODBC 桥接器与数据库连接

Java程序使用JDBC-ODBC 桥接器与数据库连接,Java程序与数据库通信的过程是:
先由数据库应用程序向ODBC驱动管理器发出API调用,ODBC驱动管理器将这个调用转换成向数据库管理系统的ODBC驱动程序调用,数据库管理系统又将这个调用转换成对操作系统的数据输入/输出调用。最后,操作系统从数据库中得到实际数据逐级返回。

数据库编程首先要设置数据源,在ODBC中设置数据源的步骤如下:

  1. 打开Windows控制面板中的管理工具。对于windows XP:选择“性能维护”>>“管理工具”>>“数据源(ODBC)”; 对于windows 2000:选择“管理工具”>>“数据源”。
  2. 打开“数据源”。出现ODBC数据源管理器对话框,显示现有的数据源名称。
  3. 选择“用户DSN”,单击“添加”按钮,出现安装数据源驱动程序对话框。Access(*.mdb)数据源,单击“完成”按钮,出现“创建数据源对话框,键入需要创建的数据源名,并为创建的数据源选择一个数据库表。
  4. 单击数据库区域的“选择”按钮,选择需要的数据库表。当需要为数据源授权访问级别时,单击“高级”按钮。设置登录名和密码后,单击“确定”按钮,完成Access数据库在ODBC管理器中的配置。
  5. 如果还没有数据库表,则需创建一个数据库表。

数据源就是数据库,在设定了数据源的基础上,Java程序要访问数据库表,还要建立JDBC-ODBC桥接器,让程序与数据库连接。以后,程序就可向数据库发送SQL语句,处理数据库返回的结果。Java数据库连接JDBC(Java DataBase Connectivity)由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接API。它能做以下三件事情:与某个数据库建立连接、向数据库发送SQL语句和处理数据库返回的结果。

调用类方法Class.forName(String s)能建立JDBC-ODBC桥接器。例如,代码:
try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}catch(Exception e){}
为Java程序加载了驱动程序。
【例 13-7】说明与数据库连接的方法connectByJdbcOdbc(),该方法按给定的数据库URL、用户名和密码连接数据库,如果连接成功,方法返回连接对象,连接不成功,则返回空(查看源文件)。

用纯Java的JDBC驱动程序实现与数据库连接

Java程序也可以用纯Java的JDBC驱动程序实现与数据库连接。这种方法应用较广泛,但是需要下载相应的驱动程序包,因为不同的数据库的连接代码可能不同,连接不同的数据库,加载的驱动程序也可能不同。例如,连接SQLServer的驱动程序在www.msdn.com网站下载,有3个包:msbase.jar,mssqlserver.jar和msutil.jar,并要求将这3个包放在jdkjrelibext目录下,或在CLASSPATH中设置其放置位置。

使用纯Java的JDBC驱动程序实现与数据库连接的过程如下:

  1. 加载驱动程序。有两种加载驱动程序的方式:

    • 一各是将驱动程序添加到java.lang.System的属性jdbc.drivers中。这是一个DriverManager类加载驱动程序类名的列表,表元用冒号分隔。
    • 另一种方式是从相关的网站下载驱动程序后,在程序中利用Class.forName()方法加载指定的驱动程序。例如:
      Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
  2. 创建指定数据库的URL。数据库的URL对象类似网络的统一资源定位符,其格式是:
    jdbc:subProtocol:subName://hostname:port:Databasename=XXX
    其中,subprotocol是某种驱动程序支持的数据库连接机制; subName是当前连接机制下的具体名称;hostName是主机名;port是相应的连接端口;DatabaseName是要连接的数据库名称。例如,以下代码可以是一个数据库的URL:
    jdbc:Microsoft:sqlserver://localhost:1433;Databasename=ksinfo
    该数据库的URL说明利用miscrosoft提供的机制,用sqlserve驱动,通过1433端口访问本机上的ksInfo数据库。
  3. 建立连接。驱动程序管理器(DriverManager)的方法getConnection()建立连接。

【例 13-8】说明与数据库连接的静态方法connectByJdbc(),该方法按给定的数据库URL、用户名和密码连接数据库,如果连接成功,方法返回true,连接不成功,则返回false(查看源文件)。

1.IP地址和InetAddress类

2.套接字(Socket)
3.数据库连接
4.几个重要的类和接口
5.数据库查询
6.数据库更新
7.插入记录
8.修改记录
9.删除记录

Java程序与数据库连接相关推荐

  1. 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程

    http://blog.csdn.net/dutguoyi/article/details/1879416 为了减少连接Oracle数据库的数量,需要将多条数据作为变量一次传入Oracle的存储过程中 ...

  2. 优秀Java程序员应该知道的20个实用开源库

    一个优秀且经验丰富的Java开发人员的特点之一是对API的广泛了解,包括JDK和第三方库.我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua ...

  3. 谈谈Java程序员进阶的那些知识和方向

    谈谈Java程序员进阶的那些知识和方向 记得前段时间看过一篇文章谈到一种程序员叫野生程序员,战斗力极强,可以搞定一切问题,但是通常看问题抓不到本质,或者说是google/baidu/stackover ...

  4. 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?

    作者:纯洁的微笑(真名:张强),高级 Java 工程师.架构师,GitChat 畅销课程作者.曾从零参与公司技术平台建设,组织平台进行过四次大架构升级.目前在一家第三方支付公司做技术总监,负责微服务架 ...

  5. Java程序 实验小全

    Java程序中的main方法声明中的参数类型是一个字符串数组,运行时,存放接收的参数,和C语言不同,第一个参数存放在下标为0的位置,第二个参数存放在下标为1的位置,其它的一次类推.下面的程序说明了参数 ...

  6. java Datasource,数据库连接池

    java Datasource,数据库连接池 目前有多重方式创建数据库连接池:JNDI,DBCP,C3P0等 为什么需要连接池: 使用java API DriverManager.getConnect ...

  7. java程序有连接数据库_Java程序连接数据库

    /** * 了解: 利用 Driver 接口的 connect 方法获取连接 */ // 第一种实现 /** * 了解: 利用 Driver 接口的 connect 方法获取连接 */ @Test p ...

  8. Java 程序中的多线程

    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...

  9. Java程序员转Android开发必读经验

    小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...

最新文章

  1. UVA572 Oil Deposits DFS求解
  2. bootstarp table
  3. leecode11 盛水最多的容器
  4. python分类预测降低准确率_十分钟掌握python机器学习特征选择
  5. 小程序入门到精通(二):了解小程序开发4个重要文件
  6. 二叉树节点数目计算的两种思路
  7. 计算机网络习题集与习题解析 pdf,计算机网络习题集与答案.pdf
  8. Centos yum 包管理工具离线安装
  9. 大数据迁徙图:逃离北上广,他们竟然去了这里!
  10. 波段高低点指标公式 k线高低点 大盘主图公式源码
  11. bzoj3097: Hash Killer I
  12. R语言泊松(Poisson)分布
  13. python 气泡图 聚类_R可视化 | 气泡图
  14. 百位产业一线大咖齐聚上海都聊了啥?POW'ER 2020峰会尖峰48小时全程回顾
  15. spring boot: Whitelabel Error Page(小白的终极解决方案)
  16. python 儿童 游戏_儿童编程教学 – 推荐几款Python编程类游戏
  17. JAVA面向对象编程(1)
  18. 打印正三角、倒三角 和 n行n列星星
  19. keystore格式与pfx格式证书互转
  20. python匿名函数和推导式烧脑面试题解析

热门文章

  1. TLS--线程局部存储
  2. 发个上海英雄会聚会沙龙的公告 希望和大家一起见面交流探讨
  3. Django入门:(admin.E108
  4. 编程方法学26:介绍Java标准库
  5. Git学习笔记:分支管理3
  6. 网页服务器知识,HTML网页服务器的知识点
  7. python 新闻分析系统 源码_python 源码分析之类型系统
  8. 【Python】find()函数居然还能指定搜索的起点和终点?
  9. 【14】全歌王歌后合集
  10. 科大星云诗社动态20211201