天天看點

JDBC程式設計的六個步驟以及使用示例(詳細)

JDBC程式設計的六個步驟

1.注冊驅動:通知Java程式我們要連接配接的是哪個品牌的資料庫

2.擷取資料庫連接配接:Java程序和Mysql程序之間的通道開啟了

3.擷取資料庫操作對象:這個對象是用來執行sql語句的

使用示例

例1:不帶處理查詢結果集的JDBC

package com.xiaoma.JDBC;

import java.sql.*;

public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        //1.注冊驅動
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
        DriverManager.registerDriver(driver);
        //2.擷取資料庫連接配接對象
        String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
        String username="root";
        String password="123456";
        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);
        //3.擷取資料庫操作對象(通過一個Connection連接配接對象可以拿到多個操作對象)
        Statement statement = conn.createStatement();
        //4.執行sql語句(這裡以插入和删除為例,其餘同理,前提是要會寫sql語句)
        //String InsertSql="insert into people(name,age,address) values('小馬',18,'山東省')";
        String DeleteSql="delete from people where name='小馬'";
        //這個executeUpdate方法專門用來執行sql的增删改查語句的,其中傳回值為影響力資料庫中的資料條數,也就是影響力幾行
        int i = statement.executeUpdate(DeleteSql);
        System.out.println(i);
        //5.釋放資源,先釋放statement再釋放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
    }
}      

例2:帶處理查詢結果集的JDBC

package com.xiaoma.JDBC;

import java.sql.*;

public class TestJDBC02 {
    public static void main(String[] args) throws SQLException {
        //1.注冊驅動
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
        DriverManager.registerDriver(driver);

        //2.擷取資料庫連接配接對象
        String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
        String username="root";
        String password="123456";
        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);

        //3.擷取資料庫操作對象(通過一個Connection連接配接對象可以拿到多個操作對象)
        Statement statement = conn.createStatement();

        //4.執行sql語句(這裡以插入和删除為例,其餘同理,前提是要會寫sql語句)
        String SeleteSql="select * from people";
        //這個executeUpdate方法專門用來執行sql的增删改查語句的,其中傳回值為影響力資料庫中的資料條數,也就是影響力幾行
        ResultSet resultSet = statement.executeQuery(SeleteSql);

        //5.處理查詢結果集
        while(resultSet.next()){
            //這個getString()方法是不管資料庫中的值是什麼類型的,他都會以String類型傳回
            //getString()是通過下标取值的,預設都是以字元串類型取出,可以通過相應類型的get方法取出特定類型的值
            System.out.println(resultSet.getString(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
            System.out.println(resultSet.getString(4));
        }

        //6.釋放資源,先釋放statement再釋放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
        if(resultSet!=null){
            resultSet.close();
        }
    }
}      

例3:将資料庫連接配接資訊寫到properties配置檔案中,通過讀取properties配置檔案連接配接資料庫,進行查詢(做開發基本上都用這種方式)

package com.xiaoma.JDBC;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;

//讀取配置檔案
public class TestJDBC03 {
    public static void main(String[] args) throws SQLException, IOException {
        //擷取配置檔案資料
        InputStream is=TestJDBC03.class.getClassLoader().getResourceAsStream("db.properties");
        Properties pro=new Properties();
        pro.load(is);
        String username= pro.getProperty("username");
        String password=pro.getProperty("password");
        String url=pro.getProperty("url");

        //1.注冊驅動
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();

        //2.擷取資料庫連接配接對象

        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);

        //3.擷取資料庫操作對象(通過一個Connection連接配接對象可以拿到多個操作對象)
        Statement statement = conn.createStatement();

        //4.執行sql語句(這裡以插入和删除為例,其餘同理,前提是要會寫sql語句)
        String SeleteSql="select * from people";
        //這個executeUpdate方法專門用來執行sql的增删改查語句的,其中傳回值為影響力資料庫中的資料條數,也就是影響力幾行
        ResultSet resultSet = statement.executeQuery(SeleteSql);

        //5.處理查詢結果集
        while(resultSet.next()){
            //這個getString()方法是不管資料庫中的值是什麼類型的,他都會以String類型傳回
            //getString()是通過下标取值的,預設都是以字元串類型取出,可以通過相應類型的get方法取出特定類型的值
            System.out.println(resultSet.getString(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
            System.out.println(resultSet.getString(4));
        }

        //6.釋放資源,先釋放statement再釋放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
        if(resultSet!=null){
            resultSet.close();
        }
    }
}