`
lovekx521
  • 浏览: 1870 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java连接MySQL数据库

阅读更多
在PHP中连接MySQL是最简单的,PHP的发行包里通常带有MySQL驱动模块,只要简单修改一下PHP配置文件就可以加载MySQL驱动,而且PHP提供了很多专用于操作MySQL数据库的函数,用起来的确很爽。在Java、Ruby和Perl中连接MySQL也是比较简单的,这些语言都提供了某种抽象接口用于管理数据库驱动,无论用哪家的数据库,程序代码都几乎一样。

本文简单总结了Java连接MySQL数据库的一些基础问题,包括JDBC概述、四类JDBC驱动、Connector/J的安装、JDBC API的使用等。使用的软件版本是JDK 1.6.0.2 和 MySQL 5.1。

一、JDBC概述

Java通过JDBC连接数据库,JDBC是Java Database Connectivity的缩写。JDBC属于Java核心API,它包含一组丰富的类和接口,支持ANSI SQL-92标准,为Java程序连接数据库提供了简单便捷的途径。

JDBC是一种与平台无关的设计,它能够管理不同的数据库驱动程序,并为用户程序提供统一的接口。当用户需要连接几个不同的数据库时,只需通知JDBC加载相应的驱动程序,而不需要修改任何访问数据库的代码。

基于JDBC的应用程序系统具有如下所示的结构:
   Java Application  <--->
                         JDBC API  <---> 
                                   JDBC DriverManager  <--->
                                                             JDBC Database Driver  <--->
                                                                                                 Database

使用JDBC可以简化如下三种编程任务:
   1. 连接到数据源,比如一个数据库
   2. 发送查询和更新到数据库
   3. 检索并处理从数据库接收到了结果

一个典型的连接-查询-解析的过程如下所示:
    Connection con = DriverManager.getConnection
             ( "jdbc:myDriver:wombat", "myLogin","myPassword");
                  
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
    while (rs.next()) {
          int x = rs.getInt("a");
          String s = rs.getString("b");
          float f = rs.getFloat("c");
    }

这段代码建立一个DriverManager实例连接并登录数据库,一个Statement实例把SQL查询提交到数据库,一个ResultSet实例接收从数据库返回的查询结果,最后用一个简单的while循环从ResultSet中解析出感兴趣的数据。就是这么简单!

二、四类JDBC驱动程序

由于JDBC是独立于数据库实现的,而每个数据库实现均有自己的通信协议,因此JDBC驱动程序通常由数据库软件商和第三方软件商提供,也就是说在使用JDBC前,用户必须自己安装数据库驱动程序。

实际存在四种类型的JDBC驱动:

  类型1:JDBC-ODBC Bridge。这类JDBC驱动实际上是通过ODBC访问数据库的,因此需要首先安装ODBC驱动,在程序运行时也要首先加载ODBC驱动。一般只用于系统开发和测试。

  类型2:JDBC-Native API Bridge。同类型1一样,这类JDBC驱动也需要安装额外的Native驱动支持程序。

  类型3:JDBC-Middleware。所谓的Middleware其实是一种代理,它全权负责数据库的管理和使用,因此本地计算机上不需要安装任何数据库驱动程序,只要确保应用程序可以和Middleware通信即可。这种结构模型多用于Java Applet和Client/Server环境中,所有访问数据库的任务都在Server端完成。

  类型4:Pure JDBC Driver。此类驱动程序使用纯Java语言开发,能够直接连接数据库,通常是最好的选择。本文讲述的Java程序连接MySQL数据库的方法就是采用这种驱动程序。

三、安装Connector/J

MySQL官方发布的JDBC驱动程序称为MySQL Connector/J。这是一个JDBC-3.0“类型4”的驱动,它是纯Java开发的,实现了JDBC-3.0的全部要求,使用MySQL协议与MySQL服务器直接通信。

官方下载页面:http://dev.mysql.com/downloads/connector/j/5.1.html

Connector/J是以.zip或.tar.gz存档形式发布的,其中包括源代码、说明文档、以及编译好的二进制文件的JAR存档,.jar的名字就像"mysql-connector-java-[version]-bin-g.jar"。

Connector/J可以安装到任何位置,只需要把包含所有class的JAR加入系统环境变量CLASSPATH,就可以在Java程序中使用它了。

如果想在Tomcat、JBoss等服务器中使用Connector/J,安装前请参考相关文档。


四、在Java程序中连接MySQL

假设Connector/J已经安装好了,在Java程序中访问MySQL需要遵循以下步骤:

(1) 在程序的首部引入java.sql包,通常可以简单地将其全部引入:
    import java.sql.*;

    注意:不要引入com.mysql.jdbc.*,否则会出错!

(2) 使用Class.forName()方法加载Connector/J中的驱动类:
    Class.forName("com.mysql.jdbc.Driver");

    其中,com.mysql.jdbc.Driver类是对java.sql.Driver接口的实现,它就在Connector/J提供的 .jar 包里。

    有的文章里要求这样:
    Class.forName("com.mysql.jdbc.Driver").newInstance();

    实际上这是没有必要的,调用Class.forName()自动创建一个驱动实例并把它注册到DriverManager,所以你不需要再创建一个驱动实例,如果你这么做了,就会创建一个多余的重复,但这也没有什么损害。

(3) 如果第二步没有抛出异常,表明加载Connector/J驱动程序成功,下面连接数据库:
    Connection con = DriverManager.getConnection(conURL, user, password);

    String conURL指明了要连接的数据库的URL,还可以在conURL中包含数据库名,用户名和密码等。

    conURL一般遵循如下格式:jdbc:subprotocol://host.domain/database,对于Connector/J而言,subprotocal就是mysql。
    例如访问本地计算机上的名为Company的数据库,conURL = "jdbc:mysql://localhost/Company";

(4) 如果一切正常,现在可以对数据库进行查询或修改了。

    取得一个Statement实例(也只需要一个):
    Statement s = con.createStatement();

    可以使用Statement类的executeQuery、executeUpdate、execute方法向MySQL服务器提交SQL语句。
    e.g.
    ResultSet rs = s.executeQuery("SELECT * FROM Emplyee;");

    ResultSet类保存了查询操作返回的表格。

(5) 释放资源,关闭Java程序到MySQL服务器的连接:
    s.close();
    con.close();

五、一个完整的例子

//----------------------------------------------------------
import java.sql.*;

public class test {
    public static void main(int Argc, String[] Argv) {

        String JDriver = "com.mysql.jdbc.Driver";  // MySQL提供的JDBC驱动,要保证它在CLASSPATH里可见

        String conURL = "jdbc:mysql://localhost/Company";  // 本地计算机上的MySQL数据库Company的URL

        try {
            Class.forName(JDriver);
        }
        catch(ClassNotFoundException cnf_e) {  // 如果找不到驱动类
            System.out.println("Driver Not Found: " + cnf_e);
        }

        try {
            Connection con = DriverManager.getConnection(conURL, "root", "123456");  // 连接数据库

            Statement s = con.createStatement();  // Statement类用来提交SQL语句

            ResultSet rs = s.executeQuery("select * from Employee;");  // 提交查询,返回的表格保存在rs中

            while(rs.next()) {  // ResultSet指针指向下一个“行”
                System.out.println(rs.getInt("No") +   // 获取员工号
                        "\t" + rs.getString("Name") +  // 获取员工名字
                        "\t" + rs.getInt("Age"));      // 获取员工年龄
            }
            s.close();     // 释放Statement对象
            con.close();   // 关闭到MySQL服务器的连接
        }
        catch(SQLException sql_e) {     // 都是SQLException
            System.out.println(sql_e);
        }
    } // main()
}
//----------------------------------------------------------

六、进一步的问题

1 prefer DataSource rather than DriverManager
2 Using <CallableStatements> to Execute [Stored Procedures]
3 Transactions
4 Metadata
5 ...
分享到:
评论

相关推荐

    Java连接MySql数据库

    本文将详细探讨如何使用Java连接MySQL数据库,以及涉及到的相关知识点。 首先,Java连接MySQL数据库通常依赖于JDBC(Java Database Connectivity),这是一个Java API,允许Java程序与各种数据库进行交互。在给定的...

    Java连接MySql数据库,并且实现插入、删除、更新、选择操作.pdf

    Java 连接 MySql 数据库,并实现插入、删除、更新、选择操作 Java 连接 MySql 数据库是 Java 程序员中非常常见的一种操作。通过使用 JDBC(Java Database Connectivity,Java 数据库连接)驱动程序,可以轻松地连接...

    java连接mysql数据库用到的jar包

    Java连接MySQL数据库主要依赖于MySQL提供的驱动程序,这个驱动程序通常被打包成一个JAR(Java Archive)文件,名为`mysql-connector-java`。在给定的文件名称列表中,我们看到的是`mysql-connector-java-5.1.7.jar`...

    java连接mysql数据库

    ### Java连接MySQL数据库知识点 #### 一、简介 在Java应用程序中连接MySQL数据库是一项常见的需求,无论是用于控制台程序还是J2EE网页开发。本文将详细介绍如何使用Java连接MySQL数据库,并进行基本的数据查询与...

    Java连接Mysql数据库代码.zip

    本压缩包文件“Java连接Mysql数据库代码.zip”包含了一个示例,用于帮助开发者了解如何在Java环境中实现这一功能。我们将详细探讨相关的知识点。 首先,要连接MySQL数据库,你需要以下组件: 1. MySQL数据库服务器...

    Java连接mysql数据库

    ### Java连接MySQL数据库:关键技术与实践 在现代软件开发中,数据库操作是不可或缺的一部分,而Java作为企业级应用开发的主流语言之一,其与数据库的交互能力显得尤为重要。本文将详细解析如何使用Java来连接MySQL...

    java连接mysql数据库连接池demo

    Java连接MySQL数据库通常涉及到几个关键知识点,包括JDBC(Java Database Connectivity)、数据库驱动、数据库连接池以及具体的数据库操作。在"java连接mysql数据库连接池demo"这个项目中,我们可以深入探讨以下几个...

    Java连接MySQL数据库的jar包

    Java连接MySQL数据库主要依赖于`mysql-connector-java`驱动程序,这是MySQL官方提供的JDBC(Java Database Connectivity)驱动,使得Java应用程序能够与MySQL数据库进行交互。`mysql-connector-java-8.0.12.jar`是这...

    Java连接MYSQL 数据库的连接步骤

    【Java连接MYSQL数据库的连接步骤详解】 在Java编程中,连接MySQL数据库是常见的操作,用于实现数据的存储和检索。以下是一步一步的详细指南: 首先,确保你已经安装了JDK,通常推荐版本为JDK1.5或更高。JDK提供了...

    java连接Mysql数据库Demo

    Java连接MySQL数据库是Java开发中的常见任务,JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。本Demo将向你展示如何使用Java通过JDBC连接到MySQL数据库,执行SQL语句并处理结果。 首先,我们...

    java连接mysql数据库驱动包

    Java连接MySQL数据库主要依赖于JDBC(Java Database Connectivity),它是一种让Java程序与各种数据库进行交互的标准接口。在Java中,我们通常会使用MySQL提供的驱动类来建立与MySQL数据库的连接。这个“java连接...

    java连接MySQL数据库

    以下将详细介绍如何使用Java连接MySQL数据库,并涉及相关文件操作。 首先,确保你的系统已经安装了MySQL服务器,并创建了一个数据库。在Java中,我们通常使用JDBC(Java Database Connectivity)API来建立数据库...

    java连接mysql数据库步骤

    本篇文章将详细介绍如何在Eclipse环境下使用Java连接MySQL数据库,并提供具体的步骤及示例代码。 #### 一、准备工作 在进行Java连接MySQL数据库之前,首先确保你已经完成了以下准备: 1. **安装Eclipse IDE**:...

    java 连接 mysql 数据库

    使用Java连接到mysql数据库 包括所有需要的文件,包括初始化用的sql文件 具体实施方法,需要的jar包,以及我的联系方式都在文件夹中. 默认您有的是:Eclpise,Java 默认您有的知识:学Java 2个月 所以有点把您当新手什么的...

Global site tag (gtag.js) - Google Analytics