1. 程式人生 > >JDBC程式設計六步曲

JDBC程式設計六步曲

第一步:註冊驅動

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCTest01 {
	public static void main(String[] args){
		/*
		 * 第一步:註冊驅動程式
		 * 1.獲取驅動物件
		 * 2.註冊驅動
		 */
		
		try {
			//1.獲取驅動物件
			Driver driver = new com.mysql.jdbc.Driver();
			//2.註冊驅動,呼叫DriverManager的registerDriver()方法
			DriverManager.registerDriver(driver);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

第二步:獲取資料庫連線

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCTest02 {
	public static void main(String[] args) {
		try {
			// 1.註冊驅動,先建立驅動物件,再呼叫DriverManager的registerDriver()方法
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);
            
			// 2.獲取資料庫連線,呼叫DriverManager的getConnection()方法
			String url = "jdbc:mysql://localhost:3306/test";
			String user = "root";
			String password = "root";
			Connection conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);//執行結果
[email protected]
} catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

第三步:獲取資料庫操作物件

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest03 {
	public static void main(String[] args) {
		try {
			// 1.註冊驅動,先建立驅動物件,再呼叫DriverManager的registerDriver()方法
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);

			// 2.獲取資料庫連線,呼叫DriverManager的getConnection()方法
			String url = "jdbc:mysql://localhost:3306/test";
			String user = "root";
			String password = "root";
			Connection conn = DriverManager.getConnection(url, user, password);

			// 3.獲取資料庫操作物件,呼叫Connection的createStatement()方法
			Statement stmt = conn.createStatement();
			System.out.println(stmt);//執行結果:
[email protected]
} catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

第四步:執行SQL語句之DML語句

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest04 {
	public static void main(String[] args) {
		try {
			// 1.註冊驅動,先建立驅動物件,再呼叫DriverManager的registerDriver()方法
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);

			// 2.獲取資料庫連線,呼叫DriverManager的getConnection()方法
			String url = "jdbc:mysql://localhost:3306/test";
			String user = "root";
			String password = "root";
			Connection conn = DriverManager.getConnection(url, user, password);

			// 3.獲取資料庫操作物件,呼叫Connection的createStatement()方法
			Statement stmt = conn.createStatement();

			// 4、執行SQL語句,呼叫Statement的executeQuery()方法
			String sql = "select * from user";// 此時SQL語句不需要分號
			ResultSet rs = stmt.executeQuery(sql);
			System.out.println(rs);//執行結果:[email protected]

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

第五步:處理查詢結果集

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest05 {
	public static void main(String[] args) {
		try {
			// 1.註冊驅動,先建立驅動物件,再呼叫DriverManager的registerDriver()方法
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);

			// 2.獲取資料庫連線,呼叫DriverManager的getConnection()方法
			String url = "jdbc:mysql://localhost:3306/test";
			String user = "root";
			String password = "root";
			Connection conn = DriverManager.getConnection(url, user, password);
		
			// 3.獲取資料庫操作物件,呼叫Connection的createStatement()方法
			Statement stmt = conn.createStatement();
			
			// 4、執行SQL語句,呼叫Statement的executeQuery()方法
			String sql = "select * from user";// 此時SQL語句不需要分號
			ResultSet rs = stmt.executeQuery(sql);
			
			/*
			+----+--------+------+------------------+
			| id | name   | sex  | email            |
			+----+--------+------+------------------+
			|  1 | 張三   | 男   | [email protected]       |
			|  2 | 李四   | 女   | [email protected]    |
			|  3 | 王二   | 男   | [email protected] |
			|  4 | 馬五   | 女   | [email protected]      |
			|  5 | 孫六   | 男   | [email protected]      |
			+----+--------+------+------------------+
			 */
			//5、處理查詢結果集
			while(rs.next()) {
				int id = rs.getInt("id");
				String name = rs.getString("name");
				String sex = rs.getString("sex");
				String email = rs.getString("email");
				System.out.println("編號"+id+"\t"+"姓名"+name+"\t"+"性別"+sex+"\t"+"郵箱"+email);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

第六步:釋放資源

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest06 {
	public static void main(String[] args) {
		Connection conn = null;// 資料庫連線物件
		Statement stmt = null;// 資料庫操作物件
		ResultSet rs = null;// 查詢結果集物件
		try {
			// 1.註冊驅動,先建立驅動物件,再呼叫DriverManager的registerDriver()方法
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);

			// 2.獲取資料庫連線,呼叫DriverManager的getConnection()方法
			String url = "jdbc:mysql://localhost:3306/test";
			String user = "root";
			String password = "root";
			conn = DriverManager.getConnection(url, user, password);
			
			// 3.獲取資料庫操作物件,呼叫Connection的createStatement()方法
			stmt = conn.createStatement();

			// 4、執行SQL語句,呼叫Statement的executeQuery()方法
			String sql = "select * from user";// 此時SQL語句不需要分號
			rs = stmt.executeQuery(sql);

			// 5、處理查詢結果集
			while (rs.next()) {
				int id = rs.getInt("id");
				String name = rs.getString("name");
				String sex = rs.getString("sex");
				String email = rs.getString("email");
				System.out.println("編號" + id + "\t" + "姓名" + name + "\t" + "性別" + sex + "\t" + "郵箱" + email);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 6、關閉資源 倒序依次關閉
			//6.1 當查詢結果集不為空時,先關閉結果集物件
			if (rs != null) {
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//6.2 當資料庫操作物件不為空時,再關閉資料庫操作物件
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//6.3 當資料庫連線物件不為空時,最後關閉資料庫連線物件
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}