在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数据库通常依赖于JDBC(Java Database Connectivity),这是一个Java API,允许Java程序与各种数据库进行交互。在给定的...
Java 连接 MySql 数据库,并实现插入、删除、更新、选择操作 Java 连接 MySql 数据库是 Java 程序员中非常常见的一种操作。通过使用 JDBC(Java Database Connectivity,Java 数据库连接)驱动程序,可以轻松地连接...
Java连接MySQL数据库主要依赖于MySQL提供的驱动程序,这个驱动程序通常被打包成一个JAR(Java Archive)文件,名为`mysql-connector-java`。在给定的文件名称列表中,我们看到的是`mysql-connector-java-5.1.7.jar`...
### Java连接MySQL数据库知识点 #### 一、简介 在Java应用程序中连接MySQL数据库是一项常见的需求,无论是用于控制台程序还是J2EE网页开发。本文将详细介绍如何使用Java连接MySQL数据库,并进行基本的数据查询与...
本压缩包文件“Java连接Mysql数据库代码.zip”包含了一个示例,用于帮助开发者了解如何在Java环境中实现这一功能。我们将详细探讨相关的知识点。 首先,要连接MySQL数据库,你需要以下组件: 1. MySQL数据库服务器...
### Java连接MySQL数据库:关键技术与实践 在现代软件开发中,数据库操作是不可或缺的一部分,而Java作为企业级应用开发的主流语言之一,其与数据库的交互能力显得尤为重要。本文将详细解析如何使用Java来连接MySQL...
Java连接MySQL数据库通常涉及到几个关键知识点,包括JDBC(Java Database Connectivity)、数据库驱动、数据库连接池以及具体的数据库操作。在"java连接mysql数据库连接池demo"这个项目中,我们可以深入探讨以下几个...
Java连接MySQL数据库主要依赖于`mysql-connector-java`驱动程序,这是MySQL官方提供的JDBC(Java Database Connectivity)驱动,使得Java应用程序能够与MySQL数据库进行交互。`mysql-connector-java-8.0.12.jar`是这...
【Java连接MYSQL数据库的连接步骤详解】 在Java编程中,连接MySQL数据库是常见的操作,用于实现数据的存储和检索。以下是一步一步的详细指南: 首先,确保你已经安装了JDK,通常推荐版本为JDK1.5或更高。JDK提供了...
Java连接MySQL数据库是Java开发中的常见任务,JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。本Demo将向你展示如何使用Java通过JDBC连接到MySQL数据库,执行SQL语句并处理结果。 首先,我们...
Java连接MySQL数据库主要依赖于JDBC(Java Database Connectivity),它是一种让Java程序与各种数据库进行交互的标准接口。在Java中,我们通常会使用MySQL提供的驱动类来建立与MySQL数据库的连接。这个“java连接...
以下将详细介绍如何使用Java连接MySQL数据库,并涉及相关文件操作。 首先,确保你的系统已经安装了MySQL服务器,并创建了一个数据库。在Java中,我们通常使用JDBC(Java Database Connectivity)API来建立数据库...
本篇文章将详细介绍如何在Eclipse环境下使用Java连接MySQL数据库,并提供具体的步骤及示例代码。 #### 一、准备工作 在进行Java连接MySQL数据库之前,首先确保你已经完成了以下准备: 1. **安装Eclipse IDE**:...
使用Java连接到mysql数据库 包括所有需要的文件,包括初始化用的sql文件 具体实施方法,需要的jar包,以及我的联系方式都在文件夹中. 默认您有的是:Eclpise,Java 默认您有的知识:学Java 2个月 所以有点把您当新手什么的...