欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

零基礎(chǔ)掌握J(rèn)DBC操作MySQL

 更新時(shí)間:2022年10月25日 11:35:22   作者:hssq  
JDBC是指Java數(shù)據(jù)庫連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來連接?Java?編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫

JDBC概述

Java數(shù)據(jù)庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。

IDEA下創(chuàng)建JDBC環(huán)境

??新建 Maven 工程

?

??填寫項(xiàng)目所在目錄、名稱、GroupId、ArtifactId

?

??配置 pom.xml 文件

在此文件中輸入以下代碼,有部分代碼是IDEA自動(dòng)生成,我們只需要補(bǔ)充,代碼補(bǔ)充完成之后,點(diǎn)擊右上角更新按鈕,IDEA就會(huì)開始下載MySQL連接器,有了這個(gè)連接器,我們才能通過Java代碼鏈接MySQL服務(wù)器

首次配置此文件可能需要較長時(shí)間

當(dāng)External Libraries 下出現(xiàn)了 mysql-connector-java 時(shí),說明配置成功

?

?

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hsq</groupId>
    <artifactId>jdbc-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
    </dependencies>
</project>

JDBC 下操作 SQL 的套路

??操作 SQL 之前的準(zhǔn)備

1. 構(gòu)造好一個(gè) DataSource 對(duì)象

2. 通過 DataSource 得到 Connection 對(duì)象

3. 通過 Connection 對(duì)象 + SQL 語句,得到 Statement 對(duì)象

建議將以下代碼封裝成一個(gè) DBUtil 類,以便之后使用

有了以下代碼就可以正式在 JDBC 下操作 SQL 了

public class DBUtil {
    private static final DataSource dateSource;
    static {
        MysqlDataSource db = new MysqlDataSource();
        db.setServerName("localhost");
        db.setPort(3306);    // MySQL 服務(wù)器端口,一般為3306
        db.setUser("root");    // 登錄 MySQL 服務(wù)器的用戶名
        db.setPassword("123456");    // 登錄 MySQL 服務(wù)器的密碼
        db.setDatabaseName("0331_library");    // 設(shè)置默認(rèn)庫
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8"); 
        db.setServerTimezone("Asia/Shanghai");
        dateSource = db;
    }
    public static Connection connection() throws SQLException {
        return dateSource.getConnection();
    }
}

??如何使用代碼執(zhí)行SQL

在 JDBC 下操作 SQL 有兩套固定代碼,只需要更換不同的 SQL 語句即可

1. 帶結(jié)果的 SQL 語句 例如:select

2. 不帶結(jié)果的 SQL 語句 例如:delect,update,insert

帶結(jié)果的 SQL 語句

String sql = "要執(zhí)行的 SQL";
try (Connection c = db.getConnection()) {
    try (PreparedStatement ps = c.prepareStatement(sql)) { 
        try (ResultSet rs = ps.executeQuery()) { 
            while (rs.next()) {
                int i = rs.getInt(1);
                String s = rs.getString(2); 
            }
        }
    }
}

不帶結(jié)果的 SQL 語句

String sql = "不帶結(jié)果的 SQL";
try (Connection c = db.getConnection()) {
    try (PreparedStatement ps = c.prepareStatement(sql)) {
        ps.executeUpdate();
    }
}

上面這兩套代碼的主要區(qū)別是:

有結(jié)果的代碼最后需要一個(gè) ResultSet 對(duì)象,執(zhí)行 ps.executeQuery(),并且需要 while 來得到每一行的結(jié)果

沒有結(jié)果的代碼則直接執(zhí)行ps.executeUpdate() 即可

JDBC 下增刪改查的完整代碼

public class Main {
    public static void main(String[] args) throws SQLException {
        MysqlDataSource db = new MysqlDataSource();
        db.setServerName("localhost");
        db.setPort(3306);
        db.setUser("root");
        db.setPassword("123456");
        db.setDatabaseName("0331_library");
        db.setUseSSL(false);
        db.setCharacterEncoding("utf-8");
        db.setServerTimezone("Asia/Shanghai");
     // 增
     try (Connection c = db.getConnection()) {
         String sql = "insert into readers (name) values ('陳浩')";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     }
    // 刪
     try (Connection c = db.getConnection()) {
         String sql = "delete from readers where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     } 
    // 改
     try (Connection c = db.getConnection()) {
         String sql = "update readers set name = '123' where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             ps.executeUpdate();
         }
     } 
    // 查
     try (Connection c = db.getConnection()) {
         String sql = "select name from readers where rid = 1";
         try (PreparedStatement ps = c.prepareStatement(sql)) {
             try (ResultSet rs = ps.executeQuery()) {
                where (rs.next) {
                    String name = rs.getString(1);
                }    
             }
         }
     } 
}

到此這篇關(guān)于零基礎(chǔ)掌握J(rèn)DBC操作 MySQL的文章就介紹到這了,更多相關(guān)JDBC操作 MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql保存微信昵稱特殊字符的方法

    mysql保存微信昵稱特殊字符的方法

    我在用mysql 保存微信昵稱,當(dāng)插入昵稱數(shù)據(jù)的時(shí)候,報(bào)錯(cuò)。接下來通過本文給大家介紹mysql保存微信昵稱特殊字符的方法,需要的朋友一起看看吧
    2018-06-06
  • Innodb中mysql快速刪除2T的大表方法示例

    Innodb中mysql快速刪除2T的大表方法示例

    這篇文章主要給大家介紹了關(guān)于Innodb中mysql快速刪除2T的大表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 深入探索數(shù)據(jù)庫MySQL性能優(yōu)化與復(fù)雜查詢相關(guān)操作

    深入探索數(shù)據(jù)庫MySQL性能優(yōu)化與復(fù)雜查詢相關(guān)操作

    數(shù)據(jù)庫MySQL 是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在進(jìn)行 MySQL 數(shù)據(jù)庫開發(fā)過程中,需要深入了解如何進(jìn)行性能優(yōu)化和復(fù)雜查詢,以提高系統(tǒng)的效率和可靠性,本文介紹的非常詳細(xì),需要的朋友可以參考一下
    2023-04-04
  • Navicat出現(xiàn)無法遠(yuǎn)程連接MySql服務(wù)器問題的解決辦法

    Navicat出現(xiàn)無法遠(yuǎn)程連接MySql服務(wù)器問題的解決辦法

    這篇文章主要介紹了Navicat出現(xiàn)無法遠(yuǎn)程連接MySql服務(wù)器問題的解決辦法,文章通過思路判斷出現(xiàn)問題的情況,然后進(jìn)行逐一排查,確定問題出現(xiàn)的原因并給出解決辦法,本文對(duì)此問題的解決介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • mysql執(zhí)行計(jì)劃Explain解讀

    mysql執(zhí)行計(jì)劃Explain解讀

    在數(shù)據(jù)庫操作中,理解Explain執(zhí)行計(jì)劃對(duì)于性能優(yōu)化至關(guān)重要,Explain展示了MySQL如何執(zhí)行查詢,包括選擇哪些索引,如何連接表,以及估計(jì)的行數(shù)等,Select類型、訪問表的方式、使用的索引、以及額外的執(zhí)行信息,都是優(yōu)化查詢時(shí)需要考慮的因素
    2024-10-10
  • MSSQL output使用

    MSSQL output使用

    存儲(chǔ)過程 output 輸出參數(shù) 可以是一個(gè)字符串
    2009-05-05
  • 允許遠(yuǎn)程訪問MySQL的實(shí)現(xiàn)方式

    允許遠(yuǎn)程訪問MySQL的實(shí)現(xiàn)方式

    這篇文章主要介紹了允許遠(yuǎn)程訪問MySQL的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

    MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案

    在使用FlinkSQL的mysql-cdc連接器來監(jiān)聽MySQL數(shù)據(jù)庫時(shí),通常需要將MySQL的binlog模式設(shè)置為ROW模式,當(dāng)我們將MySQL主庫的binlog模式從STATEMENT切換為ROW并重啟MySQL服務(wù)后,MySQL從庫在同步時(shí)可能會(huì)報(bào)錯(cuò),所以本文介紹了MYSQL主庫切換binlog模式后主從同步錯(cuò)誤的解決方案
    2024-08-08
  • MySQL循環(huán)插入千萬級(jí)數(shù)據(jù)

    MySQL循環(huán)插入千萬級(jí)數(shù)據(jù)

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)循環(huán)插入千萬級(jí)數(shù)據(jù),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    MySQL觸發(fā)器基本用法詳解【創(chuàng)建、查看、刪除等】

    這篇文章主要介紹了MySQL觸發(fā)器基本用法,結(jié)合實(shí)例形式分析了mysql觸發(fā)器的基本創(chuàng)建、查看、刪除等相關(guān)使用方法與注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論