JavaWeb学习笔记-JDBC操作(1)[连接mysql数据库]

JDBC(Java Database Connectivity,Java数据库连接),提供了一种与平台无关的用于实行SQL语句的标准Java API。

JDBC是一套数据库操作标准。每个数据库厂商都会提供一个JDBC的驱动程序,常见的JDBC驱动程序分为以下4类:

1.JDBC-ODBC桥驱动,ODBC(Open Database Connectivity,开放数据库连接)是微软公司提供的一套数据库操作的编程接口,在Windows操作系统下对各种数据库有很好的兼容性。如下图:

JavaWeb学习笔记-JDBC操作(1)[连接mysql数据库]_第1张图片

由于通过JDBC-ODBC桥驱动连接数据库通过了ODBC,所以这种连接方式效率较低。

2.JDBC本地驱动,直接使用各个数据库生产商提供的JDBC驱动程序。这种连接操作效率较高,不过只能应用到特定的数据库上,使程序丧失了可移植性。如图:

JavaWeb学习笔记-JDBC操作(1)[连接mysql数据库]_第2张图片

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中查询数据,发现插入成功。

JavaWeb学习笔记-JDBC操作(1)[连接mysql数据库]_第3张图片

接下来的程序是用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!");
	}
}
结果如下:

JavaWeb学习笔记-JDBC操作(1)[连接mysql数据库]_第4张图片

注意:如果出现Access denied for user 'root'@'localhost' (using password: YES)错误的话,先将mydb数据库打开再执行程序。

本文先介绍到这里。

你可能感兴趣的:(JavaWeb)