JDBC連接MYSQL數據庫示例

pbd4 9年前發布 | 3K 次閱讀 Java

JDBC是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用JAVA編寫的類和接口組成。說白了就和PHP的PDO一樣,通過JDBC,JAVA可以使用相同 的API接口來鏈接例如:MYSQL,SQLSERVER等不同類型的數據庫。 連接MYSQL數據庫:

package main;

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

public class Mysql { public static void main(String arg[]) { try { Connection con = null; //定義一個MYSQL鏈接對象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驅動 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //鏈接本地MYSQL System.out.print("yes"); } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); }

}

}

</pre> Class.forName("com.mysql.jdbc.Driver").newInstance();  我們鏈接的是MYSQL數據庫,所以需要一個MYSQL的數據庫驅動,如果你的環境中木有安裝,可以下載:mysql-connector-java-5.1.17-bin.jar JAR包,然后放進jdk1.6.0_37\jre\lib\ext 重啟eclispe 就可以在JRE系統庫中看到。
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");  是鏈接數據庫的語句,返回Connection con對象。參數格式:("jdbc:mysql://ip:端口/數據庫名稱", 用戶名,密碼)
 寫入一條數據

package main;

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

public class Mysql {

/**
 * 入口函數
 * @param arg
 */
public static void main(String arg[]) {
    try {
        Connection con = null; //定義一個MYSQL鏈接對象
        Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驅動
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //鏈接本地MYSQL

        Statement stmt; //創建聲明
        stmt = con.createStatement();

        //新增一條數據
        stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
        ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
        int ret_id;
        if (res.next()) {
            ret_id = res.getInt(1);
            System.out.print(ret_id);
        }



    } catch (Exception e) {
        System.out.print("MYSQL ERROR:" + e.getMessage());
    }

}

} </pre> stmt.executeUpdate  INSERT DELETE UPDATE語句都用executeUpdate函數來操作
stmt.executeQuery SELECT語句都用stmt.executeQuery函數來操作
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()"); 查詢最后插入數據的ID號,返回ResultSet res對象
刪除和更新數據

package main;

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

public class Mysql {

/**
 * 入口函數
 * @param arg
 */
public static void main(String arg[]) {
    try {
        Connection con = null; //定義一個MYSQL鏈接對象
        Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驅動
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //鏈接本地MYSQL

        Statement stmt; //創建聲明
        stmt = con.createStatement();

        //新增一條數據
        stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
        ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
        int ret_id;
        if (res.next()) {
            ret_id = res.getInt(1);
            System.out.print(ret_id);
        }

        //刪除一條數據
        String sql = "DELETE FROM user WHERE id = 1";
        long deleteRes = stmt.executeUpdate(sql); //如果為0則沒有進行刪除操作,如果大于0,則記錄刪除的條數
        System.out.print("DELETE:" + deleteRes);

        //更新一條數據
        String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
        long updateRes = stmt.executeUpdate(updateSql);
        System.out.print("UPDATE:" + updateRes);



    } catch (Exception e) {
        System.out.print("MYSQL ERROR:" + e.getMessage());
    }

}

}

</pre> 刪除和更新數據都使用stmt.executeUpdate函數。
刪除和更新數據都會返回一個Long的結果,如果為0,則刪除或者更新失敗,如果大于0則是操作的記錄數
查詢語句

package main;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement;

public class Mysql {

/**
 * 入口函數
 * @param arg
 */
public static void main(String arg[]) {
    try {
        Connection con = null; //定義一個MYSQL鏈接對象
        Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驅動
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //鏈接本地MYSQL

        Statement stmt; //創建聲明
        stmt = con.createStatement();

        //新增一條數據
        stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
        ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
        int ret_id;
        if (res.next()) {
            ret_id = res.getInt(1);
            System.out.print(ret_id);
        }

        //刪除一條數據
        String sql = "DELETE FROM user WHERE id = 1";
        long deleteRes = stmt.executeUpdate(sql); //如果為0則沒有進行刪除操作,如果大于0,則記錄刪除的條數
        System.out.print("DELETE:" + deleteRes);

        //更新一條數據
        String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
        long updateRes = stmt.executeUpdate(updateSql);
        System.out.print("UPDATE:" + updateRes);

        //查詢數據并輸出
        String selectSql = "SELECT * FROM user";
        ResultSet selectRes = stmt.executeQuery(selectSql);
        while (selectRes.next()) { //循環輸出結果集
            String username = selectRes.getString("username");
            String password = selectRes.getString("password");
            System.out.print("\r\n\r\n");
            System.out.print("username:" + username + "password:" + password);
        }


    } catch (Exception e) {
        System.out.print("MYSQL ERROR:" + e.getMessage());
    }

}

}

</pre> 查詢語句使用stmt.executeQuery函數
rs.absolute() //絕對位置,負數表示從后面數
rs.first()第一條
rs.last()最后一條
rs.previoust()前一條
rs.next()后一條
rs.beforeFirst()第一條之前
rs.afterLast()最后之后
rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast

 本文由用戶 pbd4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!