JDBC(Java Database Connectivity,Java数据库连接),提供了一种与平台无关的用于实行SQL语句的标准Java API。
JDBC是一套数据库操作标准。每个数据库厂商都会提供一个JDBC的驱动程序,常见的JDBC驱动程序分为以下4类:
1.JDBC-ODBC桥驱动,ODBC(Open Database Connectivity,开放数据库连接)是微软公司提供的一套数据库操作的编程接口,在Windows操作系统下对各种数据库有很好的兼容性。如下图:
由于通过JDBC-ODBC桥驱动连接数据库通过了ODBC,所以这种连接方式效率较低。
2.JDBC本地驱动,直接使用各个数据库生产商提供的JDBC驱动程序。这种连接操作效率较高,不过只能应用到特定的数据库上,使程序丧失了可移植性。如图:
3.JDBC网络驱动
4.本地协议纯JDBC驱动
本次介绍的是利用JDBC本地驱动连接mysql数据库,具体操作步骤如下:
1.前往mysql官网下载JDBC驱动程序,链接:http://dev.mysql.com/downloads/connector/j/
2.打开eclipse,接下来,按此顺序打开:project->Properties->Java Build Path。选择右栏的Add External JARs....,将下载好的JDBC驱动程序(jar包)导入后会出现如下界面:
点击OK,为了当转移项目时使JDBC驱动程序一起转移,需要将JDBC驱动程序放到本项目的bin文件中。
3.接下来要通过代码来连接mysql数据库了。在此之前要新建数据库,创建表格并插入一些数据用以验证是否连接成功。sql代码如下:
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE course(
c_id VARCHAR(6) PRIMARY KEY,
c_name VARCHAR(10) NOT NULL,
credit_hour INT NOT NULL
);
INSERT INTO course VALUES('19401a', 'math', 6),('19402b', 'english', 4),('19403a', 'physics', 3);
在mysql中查询数据,发现插入成功。
接下来的程序是用JDBC连接mysql数据库,注意用户名与密码是根据自己的配置来设置。
import java.sql.*;
public class Main {
// JDBC 驱动名,固定不变
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
// 所要访问数据库的 URL, 'mydb'表示数据库名称。
static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";
// 登录 mysql 数据库时自行设计的用户名与密码
static final String USER = "root";
static final String PASS = "****";
static Connection connection = null;
static Statement statement = null;
static void connectDatabase() {
try {// 连接数据库时需要处理异常
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER); // 需要处理ClassNotFoundxception
// 连接mysql数据库
System.out.println("正在连接mysql数据库...");
connection = DriverManager.getConnection(DB_URL, USER, PASS);// 需要处理SQLException
statement = connection.createStatement();
//执行sql语句之select语句
accessDatabase_select();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接时也需要处理SQLException
try {
if (statement != null)
statement.close();
} catch (Exception e) {
;
}
try {
if (connection != null)
connection.close();
} catch (Exception e) {
;
}
}
}
static void accessDatabase_select() {
ResultSet result = null;
String sql = "SELECT c_id, c_name, credit_hour FROM course";
try {
result = statement.executeQuery(sql);
while (result.next()) {
int id = result.getInt("c_id");
String name = result.getString("c_name");
int age = result.getInt("credit_hour");
System.out.print("c_id: " + id);
System.out.print(" ,c_name: " + name);
System.out.println(" ,credit_hour: " + age);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (result != null) {
result.close();
}
} catch (Exception e) {
;
}
}
}
public static void main(String[] args) {
connectDatabase();
System.out.println("Goodbye!");
}
}
结果如下:
注意:如果出现Access denied for user 'root'@'localhost' (using password: YES)错误的话,先将mydb数据库打开再执行程序。
本文先介绍到这里。