1. 程式人生 > >JDBC(1)-連線MySQL資料庫,及其基本概念

JDBC(1)-連線MySQL資料庫,及其基本概念

1、首先的知道這麼個事情sun公司提供了JDBC(用於執行SQL語句的Java API),但是JDBC不能直接操作資料庫,(“JDBC它只是一堆介面,沒有實現所以沒有具體操作資料庫的內容”),所以要使用JDBC操作資料庫,還需要各大資料庫廠商提供的JDBC驅動程式(也就是說sun提供了這麼一個介面,實現就交給了資料庫廠商,使大家掌握JDBC就能對各大資料實現操作)。

知道這麼件事後,就寫程式碼把!

2、連線MySQL資料庫

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
 
public class Test1 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement st = null;
        ResultSet res = null;        
        try {
 
            //1.註冊驅動      
            //註冊驅動有兩種方式,一種是DriverManager.registerDriver;一種Class.forName;有帖子說後者好。
            //註冊的目的就是告訴JDBC要操作什麼資料庫,並把資料庫廠商提供的JDBC驅動程式碼傳過來
            
            //DriverManager.registerDriver(new com.mysql.jdbc.Driver());  //多型
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //2.建立連線 引數一:協議+訪問資料庫,引數二:使用者名稱,引數三:密碼
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/要操作資料庫名字", "root", "密碼");
 
            //3.建立statement,跟資料庫打交道一定需要這個物件
            st = conn.createStatement();
 
            //4.執行直接查詢,得到結果集
            String sql = "select * from emp;";
            res = st.executeQuery(sql);
            
            //5.遍歷查詢每一條記錄
            while(res.next())
            {
                int empno = res.getInt("EMPNO");
                String ename = res.getString("ENAME");
                double sal = res.getDouble("SAL");
 
                System.out.println("empno="+empno+"   ename="+ename+"     sal="+sal);
            }
 
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally
        {
            //關閉資源的順序,誰先建立,則誰先關閉
            try {
 
                // 為了程式健壯
                if(res!=null)
                {
                    res.close();
                }
                if(st!=null)
                {
                    st.close();
                }
                if(conn!=null)
                {
                    conn.close();
                }                
 
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
        }
 
    }
 
}