JDBC六部曲-1

//創建db.properties文件,來配置對數據庫的訪問方式
dbname=MySQL /Oracle
//通過讀取文件來實現對不同的數據庫不同訪問
import java.io.*;
import java.util.*;

public class JDBCTestProgrammer1{
	public static void main(String[] args) throws Exception{
		//通過FileReader讀取配置文件
		FileReader reader = new FileReader("db.properties");
		//創建一個屬性對象
		Properties prop = new Properties();
		//通過屬性對象的load方法將reader讀取到內存生成一個Map集合
		prop.load(reader);
		//關閉流
		reader.close();
		
		//通過屬性對象的getProperty(String key)
		String dbname = prop.getProperty("dbname");
		//通過java反射機制創建該類
		Class c = Class.forName(dbname);
		Object obj = c.newInstance();
		JDBC jdbc = (JDBC)obj;
		jdbc.getConnection();
	}
}

JDBC編程六步驟

    1:註冊驅動

    2:獲取數據庫連接

    3:執行數據庫操作對象

    4:執行SQL語句

    5:處理查詢結果集

    6:關閉資源


第一步:實現註冊驅動

1.1)獲取驅動對象

1.2) 註冊驅動 

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

public class DriverTest {
	public static void main(String[] args){
		try{
			//獲取驅動對象
			Driver driver = new com.mysql.jdbc.Driver();
			//註冊驅動
			DriverManager.registerDriver(driver);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

第二步:獲取數據庫的連接

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

public class JDBCTest {
	public static void main(String[] args){
		try{
			//1.1獲取驅動對象
			Driver driver = new com.mysql.jdbc.Driver();
			//1.2註冊驅動
			DriverManager.registerDriver(driver);
			
			//2獲取數據庫連接
			String url = "jdbc:mysql://127.0.0.1:3306/test";
			String user = "root";
			String password = "123456";
			Connection conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

第三步:獲取數據庫的操作對象

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Connection;
public class JDBCTest{
	public static void main(String[] args){
		try{
			//註冊驅動 
			Driver driver =  new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);
		
			//獲取數據庫連接
			String url = "jdbc:mysql://127.0.0.1:3306/test";
			String user = "root";
			String password = "123456";
			Connection conn = DriverManager.getConnection(url,user,password);
		
			//3:獲取數據庫操作對象
			Statement stmt = conn.createStatement();
			System.out.println(stmt);
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}
}

第四步:執行SQL語句

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 JDBCTest{
	public static void main(String[] args){
		try {
			//1註冊驅動
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.deregisterDriver(driver);		
			//2獲取數據庫連接
			String url = "jdbc:mysql://127.0.0.1:3306/JDBC";
			String user = "root";
			String password = "123456";
			Connection conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3獲取數據庫操作對象
			Statement stat = conn.createStatement();
			//4執行SQL語句:DQL語句->查詢
			String sql = "select c_id, c_name , c_zip  from customers";
			ResultSet rs = stat.executeQuery(sql);
			System.out.println(rs);
		}
		catch (SQLException e) {
			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 JDBCTest{
	public static void main(String[] args){
		try {
			//1註冊驅動
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.deregisterDriver(driver);		
			//2獲取數據庫連接
			String url = "jdbc:mysql://127.0.0.1:3306/JDBC";
			String user = "root";
			String password = "123456";
			Connection conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3獲取數據庫操作對象
			Statement stat = conn.createStatement();
			//4執行SQL語句:DQL語句->查詢
			String sql = "select c_id, c_name , c_zip  from customers;";
			ResultSet rs = stat.executeQuery(sql);
			System.out.println(rs);
			//5處理查詢結果
			while(rs.next()){
				//取數據的第一種方式
				String  name= rs.getString("c_name");
				int id = rs.getInt("c_id");
				double zip = rs.getDouble("c_zip");
				System.out.println(name+"\t "+id+"\t "+zip);
				/*不建議以下寫法,程序可讀性不強
				String  name= rs.getString(2);
				int id = rs.getInt(1);
				double zip = rs.getDouble(3);
				System.out.println(name+"\t "+id+"\t "+zip);
				*/
			}
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

第六步:關閉資源

由於變量作用域的關係,在try裏面定義的變量不能在finally裏面讀取,所以需要局部變量爲全局變量

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 JDBCTest{
	public static void main(String[] args){
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		try {
			//1註冊驅動
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.deregisterDriver(driver);		
			//2獲取數據庫連接
			String url = "jdbc:mysql://127.0.0.1:3306/JDBC";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3獲取數據庫操作對象
			stat = conn.createStatement();
			//4執行SQL語句:DQL語句->查詢
			String sql = "select c_id, c_name , c_zip  from customers;";
			rs = stat.executeQuery(sql);
			System.out.println(rs);
			//5處理查詢結果
			while(rs.next()){
				//取數據的第一種方式
				String  name= rs.getString("c_name");
				int id = rs.getInt("c_id");
				double zip = rs.getDouble("c_zip");
				System.out.println(name+"\t "+id+"\t "+zip);
				/*不建議以下寫法,程序可讀性不強
				String  name= rs.getString(2);
				int id = rs.getInt(1);
				double zip = rs.getDouble(3);
				System.out.println(name+"\t "+id+"\t "+zip);
				*/
			}
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		finally{
			//6關閉資源  倒敘關閉
			if(rs != null){	
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(stat != null){
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

附:執行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 JDBCTest{
	public static void main(String[] args){
		Connection conn = null;
		Statement  stat = null;
		int count = 0;
		try {
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.deregisterDriver(driver);
			
			String url = "jdbc:mysql://127.0.0.1:3306/jdbc";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			
			stat = conn.createStatement();
			
			//執行SQL語句  :DML語句->insert update delect
			String sql_ins = "insert into t_user(name) values ('aaa')";
			count = stat.executeUpdate(sql_ins);
			
			
			String sql_update = "update t_user set name = 'lll'  where id = 1";
			count = stat.executeUpdate(sql_update);
			
			String sql_del = "DELETE FROM t_user where name = 'aaa'";
			count = stat.executeUpdate(sql_del);
			System.out.println(count);
			} 
		catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章