Java JDBC概要總結一(基本操做和SQL注入問題)

JDBC定義: JDBC(Java DataBase Connectivity,java數據庫鏈接)是一種用於執行SQL語句的Java API。JDBC是Java訪問數據庫的標準規範,能夠爲不一樣的關係型數據庫提供統一訪問,它由一組用Java語言編寫的接口和類組成。java

JDBC規範(掌握四個核心對象):mysql

DriverManager類:用於註冊驅動(管理控制驅動程序)sql

Connection: 表示與數據庫建立的鏈接數據庫

Statement: 操做數據庫sql語句的對象oracle

ResultSet: 結果集或一張虛擬表(查詢結果返回ResultSet集)性能

JDBC案例實現url

@Testspa

// 查詢全部的分類信息對象

public void demo1() throws Exception{接口

    // 注意:使用JDBC規範,採用都是 java.sql包下的內容

    //1 註冊驅動

    Class.forName("com.mysql.jdbc.Driver");

    //2 得到鏈接

    String url = "jdbc:mysql://localhost:3306/mydb";

    Connection conn = DriverManager.getConnection(url, "root", "root");

    //3得到執行sql語句的對象

    Statement stmt = conn.createStatement();

    //4執行SQL語句

    ResultSet rs = stmt.executeQuery("select * from category");

   

    //5處理結果集

    while(rs.next()){

        // 得到一行數據

        Integer cid = rs.getInt("cid");

        String cname = rs.getString("cname");

        System.out.println(cid + " , " + cname);

    }

    //6釋放資源

    rs.close();

    stmt.close();

    conn.close(); 

}

API詳解:註冊驅動

DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建議使用

緣由有2個:

>致使驅動被註冊2次。

>強烈依賴數據庫的驅動jar

解決辦法:

Class.forName("com.mysql.jdbc.Driver");

API詳解:得到連接

static Connection getConnection(String url, String user, String password)

試圖創建到給定數據庫 URL 的鏈接。

參數說明:url 須要鏈接數據庫的位置(網址) user用戶名  password 密碼

例如:getConnection("jdbc:mysql://localhost:3306/day06", "root", "root");

URL:SUN公司與數據庫廠商之間的一種協議。

jdbc:mysql://localhost:3306/day06

協議子協議  IP :端口號數據庫

mysql: jdbc:mysql://localhost:3306/day04或者jdbc:mysql:///day14(默認本機鏈接)

oracle數據庫: jdbc:oracle:thin:@localhost:1521:sid

SQL注入問題

preparedStatement:預編譯對象,是Statement對象的子類。

特色:

性能高

會把sql語句先編譯

能過濾掉用戶輸入的關鍵字。

PreparedStatement預處理對象,處理的每條sql語句中全部的實際參數,都必須使用佔位符?替換。

String sql = "select * from user where username = ? and password = ?";

        PreparedStatement使用,須要經過如下3步驟完成:

1.         PreparedStatement預處理對象代碼:

#得到預處理對象,須要提供已經使用佔位符處理後的SQL語句

PreparedStatement psmt = conn.prepareStatement(sql)

1.         設置實際參數

void setXxx(int index, Xxx xx) 將指定參數設置指定類型的值

    參數1index 實際參數序列號,從1開始。

    參數2xxx 實際參數值,xxx表示具體的類型。

例如:

setString(2, "1234") SQL語句中第2個位置的佔位符?替換成實際參數 "1234"

2.         執行SQL語句:

int executeUpdate(); --執行insert update delete語句.

ResultSet executeQuery(); --執行select語句.

boolean execute(); --執行select返回true 執行其餘的語句返回false.

相關文章
相關標籤/搜索