最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java操作MySQL實現(xiàn)數(shù)據交互的方法

 更新時間:2025年01月09日 09:50:40   作者:呼啦啦啦啦啦啦啦啦  
JDBC是Java中用于操作數(shù)據庫的API,可以為多種關系數(shù)據庫提供統(tǒng)一訪問,它通過JDK自帶的JDBC API和數(shù)據庫驅動包進行操作,實現(xiàn)數(shù)據庫的增刪改查,本文給大家介紹使用Java操作MySQL實現(xiàn)數(shù)據交互的方法,感興趣的朋友跟隨小編一起看看吧

JDBC的認識:

JDBC,即Java Database Connectivity,java數(shù)據庫連接。是一種用于執(zhí)行SQL語句的Java API,它是Java中的數(shù)據庫連接規(guī)范。它為Java開發(fā)人員操作數(shù)據庫提供了一個標準的API,可以為多種關系數(shù)據庫提供統(tǒng)一訪問;

由于每個廠商的數(shù)據庫的API都不同,為了進行統(tǒng)一管理,Java提供了一套標準的API接口標準,每個數(shù)據庫都得安裝這套標準才能在Java中使用,這套標準就是JDBC;

JDBC的作用可以在Java中對數(shù)據庫進行增刪改查操作;

安裝MySQL驅動包:

只要安裝了JDK就自帶了JDBC,JDBC是Java標準庫中提供的,但是Java要想操作數(shù)據庫,就得下載它的數(shù)據庫驅動包,得適配到Java中

中央倉庫:https://mvnrepository.com/

中央倉庫:有大佬將Java中日常開發(fā)中可能會使用到的第三方庫,安裝包統(tǒng)一收集在一個網站中,這個網站就叫做“中央倉庫”;

 因為我使用的數(shù)據庫是5.7版本的,屬于舊版本,下載舊版本的驅動包即可;

隨便哪個版本都行,只需前面的大版本對應你的MySQL版本就行

下載jar文件 

下載完成后將包導入IDEA

1)在項目中創(chuàng)建一個新目錄

2)將jar包復制粘貼到lib包中

3)右擊.jar文件 選擇  點擊OK

4)添加完成

實現(xiàn)代碼:

1.創(chuàng)建數(shù)據源

        //1.創(chuàng)建數(shù)據源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");

這里設置了賬號密碼使用的有連接方式

客戶端-服務器之間的通信有倆種:

有連接:這里JDBC使用的就是這種,需要雙方同意才能進行操作。

例如:打電話,A打B的電話,B必須接收才能相互通信

無連接:類似發(fā)短信,不需要對方同意,也可以直接發(fā)送

2.和數(shù)據庫服務器建立連接 

        //2.和數(shù)據庫服務器建立連接
        Connection connection = dataSource.getConnection();

這塊不要導錯包,否則會出現(xiàn)錯誤;

在getConnection()這個方法的可能會連接失敗  有以下幾點可能:

1.數(shù)據庫服務器沒有正確啟動

2.url寫錯了

3.用戶名寫錯了

4.密碼填錯了

5.網絡斷開.....

3.構造操作數(shù)據庫的 sql 語句.

        //3.構造操作數(shù)據庫語句
        System.out.println("請輸入學號: ");
        int id = scanner.nextInt();
        System.out.println("請輸入姓名: ");
        String name = scanner.next();
        String sql = "insert into student values(?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1, id);
        preparedStatement.setString(2, name);

prepareStatement(sql) 方法將 SQL 語句傳遞給數(shù)據庫,準備執(zhí)行。PreparedStatement 提供了一種預編譯的方式,確保 SQL 語句能更高效地執(zhí)行,并且可以有效防止 SQL 注入。

在sql語句中使用到?這種占位符

preparedStatement:可以設置sql語句對應的占位符位置,并且下標是從1開始

4.執(zhí)行SQL語句

//4.執(zhí)行SQL語句
int n = preparedStatement.executeUpdate();
System.out.println("n = "+n);

有倆種方法:

  • executeQuery() 方法執(zhí)行后返回單個結果集的,通常用于select語句
  • executeUpdate()方法返回值是一個整數(shù),指示受影響的行數(shù),通常用于update、insert、delete語句

5.釋放資源 

        //5.釋放資源
        preparedStatement.close();
        connection.close();

對應前面創(chuàng)建的資源都得手動釋放掉,以免不必要的浪費

完整代碼:

Insert:

public class Demo {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        //1.創(chuàng)建數(shù)據源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");
        //2.和數(shù)據庫服務器建立連接
        Connection connection = dataSource.getConnection();
        //3.構造操作數(shù)據庫語句
        System.out.println("請輸入學號: ");
        int id = scanner.nextInt();
        System.out.println("請輸入姓名: ");
        String name = scanner.next();
        String sql = "insert into student values(?, ?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1, id);
        preparedStatement.setString(2, name);
        //4.執(zhí)行SQL語句
        int n = preparedStatement.executeUpdate();
        System.out.println("n = "+n);
        //5.釋放資源
        preparedStatement.close();
        connection.close();
    }
}

Select:

public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        //1.創(chuàng)建數(shù)據源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");
        //2.和數(shù)據庫服務器建立連接
        Connection connection = dataSource.getConnection();
        //3.構造操作數(shù)據庫語句
        String sql = "select * from student";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        //4.執(zhí)行語句
        ResultSet resultSet = preparedStatement.executeQuery();
        //遍歷結果
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = "+id +", name = " + name);
        }
        //5.資源釋放
        resultSet.close();
        preparedStatement.close();;
        connection.close();
    }

ResultSet對象它被稱為結果集,它代表符合SQL語句條件的所有行,并且它通過一套getXXX方法提供了對這些行中數(shù)據的訪問。

ResultSet里的數(shù)據一行一行排列,每行有多個字段,并且有一個記錄指針,指針所指的數(shù)據行叫做當前數(shù)據行,我們只能來操作當前的數(shù)據行。我們如果想要取得某一條記錄,就要使用ResultSet的next()方法 ,如果我們想要得到ResultSet里的所有記錄,就應該使用while循環(huán)。

Update:

    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        //1.建立數(shù)據源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("040518");
        //2.建立連接
        Connection connection = dataSource.getConnection();
        //3.構建sql
        String sql =  "update student set name = 'wangwu' where id = 2";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        //4.執(zhí)行sql
        int n = preparedStatement.executeUpdate();
        System.out.println("n = " + n);
        //5.釋放資源
        preparedStatement.close();
        connection.close();
    }

到此這篇關于使用Java操作MySQL實現(xiàn)數(shù)據交互的文章就介紹到這了,更多相關java mysql數(shù)據交互內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java使用反射來獲取泛型信息示例

    Java使用反射來獲取泛型信息示例

    這篇文章主要介紹了Java使用反射來獲取泛型信息,結合實例形式分析了java基于反射操作泛型信息的相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2019-07-07
  • 教你如何區(qū)分Spring與Structs2中間件

    教你如何區(qū)分Spring與Structs2中間件

    這篇文章主要介紹了教你如何區(qū)分Spring與Structs2中間件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • spring boot 本地圖片不能加載(圖片路徑)的問題及解決方法

    spring boot 本地圖片不能加載(圖片路徑)的問題及解決方法

    這篇文章主要介紹了spring boot 本地圖片不能加載(圖片路徑)的問題,解決的辦法其實很簡單,只要寫一個配置文件,也就是圖片位置的轉化器,原理是虛擬一個在服務器上的文件夾,與本地圖片的位置進行匹配。需要的朋友可以參考下
    2018-04-04
  • 使用Java構建一個簡潔清晰的日期API

    使用Java構建一個簡潔清晰的日期API

    這篇文章主要為大家詳細介紹了如何使用Java構建一個簡潔清晰的日期API,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-10-10
  • Java并發(fā)編程之Executors類詳解

    Java并發(fā)編程之Executors類詳解

    今天給大家?guī)淼氖顷P于Java并發(fā)編程的相關知識,文章圍繞著Java Executors類展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringMVC文件上傳的配置實例詳解

    SpringMVC文件上傳的配置實例詳解

    本文通過實例代碼給大家介紹SpringMVC文件上傳的配置相關內容,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-05-05
  • SpringBoot實現(xiàn)國際化的配置方法

    SpringBoot實現(xiàn)國際化的配置方法

    隨著一個系統(tǒng)的規(guī)模做上去之后,國際化的問題就會逐漸暴露出來,簡單來說,當你的系統(tǒng)面對的不再是本國的用戶,而要面臨海外用戶時,系統(tǒng)必須要能適配國際化,所以本文給大家介紹了SpringBoot實現(xiàn)國際化的配置方法,需要的朋友可以參考下
    2025-11-11
  • 一文帶你看懂Android動畫的實現(xiàn)原理

    一文帶你看懂Android動畫的實現(xiàn)原理

    動畫是 Android 應用程序中重要的交互特性,ndroid 提供了多種動畫效果,包括平移、縮放、旋轉和透明度等,它們可以通過代碼或 XML 來實現(xiàn),本文將介紹 Android 動畫的原理和實現(xiàn)方法,并提供一些示例,需要的朋友可以參考下
    2023-07-07
  • Java redisson實現(xiàn)分布式鎖原理詳解

    Java redisson實現(xiàn)分布式鎖原理詳解

    這篇文章主要介紹了Java redisson實現(xiàn)分布式鎖原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Spring Boot中使用 Spring Security 構建權限系統(tǒng)的示例代碼

    Spring Boot中使用 Spring Security 構建權限系統(tǒng)的示例代碼

    本篇文章主要介紹了Spring Boot中使用 Spring Security 構建權限系統(tǒng)的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08

最新評論

漯河市| 金湖县| 乌拉特后旗| 晋江市| 广灵县| 方正县| 海兴县| 砀山县| 永吉县| 陵水| 海原县| 靖边县| 富民县| 灵山县| 锡林郭勒盟| 鹤峰县| 苗栗市| 安溪县| 揭东县| 娱乐| 遂溪县| 丰镇市| 阳春市| 城市| 金坛市| 尤溪县| 赤水市| 银川市| 宁乡县| 永德县| 酉阳| 东光县| 共和县| 乡宁县| 孝义市| 池州市| 西青区| 台中市| 中卫市| 海丰县| 葫芦岛市|