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数据库打开再执行程序。
本文先介绍到这里。