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

詳解Java使用JDBC連接MySQL數(shù)據(jù)庫(kù)

 更新時(shí)間:2022年01月04日 12:02:56   作者:九九舅舅酒酒  
本文詳細(xì)講解了Java使用JDBC連接MySQL數(shù)據(jù)庫(kù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一:什么是數(shù)據(jù)庫(kù),為什么要有數(shù)據(jù)庫(kù)?

數(shù)據(jù),數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)是與數(shù)據(jù)庫(kù)技術(shù)密切相關(guān)的四個(gè)基本概念。

數(shù)據(jù)庫(kù)相信大家都耳熟能詳了,其實(shí)數(shù)據(jù)庫(kù)顧名思義就是存放數(shù)據(jù)的倉(cāng)庫(kù),只不過這個(gè)倉(cāng)庫(kù)是在計(jì)算機(jī)存儲(chǔ)設(shè)備上,而且數(shù)據(jù)是按一定的格式存放的~

可能有朋友就要打斷我施法了,停停停,我們Java程序猿在IDEA里面和控制臺(tái)你儂我儂,沒有對(duì)象new個(gè)對(duì)象存儲(chǔ)在內(nèi)存JVM的堆上就行了,學(xué)數(shù)據(jù)庫(kù)干啥???

這時(shí)候我們就需要了解到:內(nèi)存(Memory)也被稱為內(nèi)存儲(chǔ)器,其作用是用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤等外部存儲(chǔ)器交換的數(shù)據(jù)。

以疫情期間為例,把人隔離觀察住的酒店,就好比是內(nèi)存,家喻戶曉的JVM就是放在內(nèi)存上的~~~ 酒店是給人住的,他的空間是寶貴的,然而每個(gè)人每天生活必需品,衣食住行等等,隔離一天兩天可能酒店還放得下,但是隔離十天半個(gè)月,一年半載呢?酒店是住人的,不是放東西的~~~酒店寸土寸金每個(gè)地方都很寶貴,拿酒店(內(nèi)存)來放行李和必需品等(海量數(shù)據(jù)~),如果酒店還是西安的W酒店,這豈不是很奢侈?~~~你拿來存放自己和跟班大批行李~老哥,還缺行李不?(doge),想要存放大批東西(海量數(shù)據(jù)),我直接把十四運(yùn)的主場(chǎng)館(外存上的數(shù)據(jù)庫(kù))(69.6畝)給你放行李(海量數(shù)據(jù))~!

這下諸位應(yīng)該都了然為什么我們需要搞數(shù)據(jù)庫(kù)了吧?

二:如何使用Java連接數(shù)據(jù)庫(kù)~

1)原生方法

1.1)加載JDBC 驅(qū)動(dòng):

Class.forName(driver);// mysql 數(shù)據(jù)庫(kù):“com.mysql.jdbc.Driver”

1.2)建立數(shù)據(jù)庫(kù)連接:

Connection conn=DriverManager.getConnection(url,userName,password);

1.3)創(chuàng)建 statement,用來執(zhí)行SQL 語(yǔ)句:

Statement statement =conn.createStatement();

1.4)執(zhí)行 SQL 語(yǔ)句:

preparedStatement.Execute 這個(gè)。執(zhí)行所準(zhǔn)備的語(yǔ)句,并且返回結(jié)果集合 ResultSet

preparedStatement 事先準(zhǔn)備好的聲明

Execute the prepared statement.就是執(zhí)行準(zhǔn)備好的語(yǔ)句!

ResultSet rs =statement.executeQuery(sql);

1.5)關(guān)閉記錄集,關(guān)閉聲明,關(guān)閉連接對(duì)象

1.6)連起來

在以反射的方式注冊(cè)驅(qū)動(dòng)從而獲取數(shù)據(jù)庫(kù)的連接的方法,詳情可以參考我以前的博客,因?yàn)楸疚膫?cè)重于講解DataSource連接數(shù)據(jù)庫(kù)的方法!所以在此不作贅述~

1.7)原生方法的不足:

每次使用都要?jiǎng)?chuàng)建連接,使用完畢后還必須關(guān)閉連接,操作繁瑣,易出錯(cuò);

連接數(shù)據(jù)庫(kù)資源不便統(tǒng)一管理;

三:IDEA中配置jar包

工欲善其事必先利其器,在前期的學(xué)習(xí)過程中,我們使用JDBC連接MySQL的時(shí)候應(yīng)該手動(dòng)配置Jar包

移步之前的帖子——>配置Java包流程及Jar包下載

四:url必知必會(huì)

我們?cè)跒g覽器的地址欄里輸入的網(wǎng)站地址叫做URL (Uniform Resource Locator,統(tǒng)一資源定位符)。.就像每家每戶都有一個(gè)門牌地址一樣,每個(gè)網(wǎng)頁(yè)也都有一個(gè)Internet地址。

在使用連接數(shù)據(jù)庫(kù)的時(shí)候需要先知道數(shù)據(jù)庫(kù)的

連接信息~

列位您可記住嘞  127.0.0.1 這個(gè)地址:就是當(dāng)前自己電腦的IP地址

而我們的IP地址 和 端口如何理解 

IP地址就相當(dāng)于我們點(diǎn)外賣訂單所填的地址,端口號(hào)就是外賣訂單所寫的收件人!~具體交給誰(shuí)吃!~ 

而且這個(gè)URL沒必要強(qiáng)行記

URL

private static final String URL = "jdbc:mysql://127.0.0.1:3306/java16_order_system?characterEncoding=utf8&useSSL=true";

jdbc:mysql://127.0.0.1:3306/java16_order_system?characterEncoding=utf8&useSSL=true

放在好找的地方(如gitee碼云倉(cāng)庫(kù))等,需要的時(shí)候復(fù)制粘貼一改就行了!~

五:datasource獲取連接

package model;
 
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
 
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
// DBUtil 本質(zhì)上是一個(gè)管理了單例的 DataSource 的類
public class DBUtil {
    private static final String URL = "jdbc:mysql://127.0.0.1:3306/java16_order_system?characterEncoding=utf8&useSSL=true";
//    private static final String URL = "jdbc:mysql://47.98.116.42:3306/java16_order_system?characterEncoding=utf8&useSSL=true";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "rota";
 
    private static volatile DataSource dataSource = null;
 
    public static DataSource getDataSource() {
        if (dataSource == null) {
            synchronized (DBUtil.class) {
                if (dataSource == null) {
                    dataSource = new MysqlDataSource();
                    ((MysqlDataSource)dataSource).setURL(URL);
                    ((MysqlDataSource)dataSource).setUser(USERNAME);
                    ((MysqlDataSource)dataSource).setPassword(PASSWORD);
                }
            }
        }
        return dataSource;
    }
 
    // 數(shù)據(jù)庫(kù)連接失敗是很常見的問題. 如果失敗, 后續(xù)的操作肯定也是失敗的.
    // 如果發(fā)現(xiàn) Connect 為 null, 就說明數(shù)據(jù)庫(kù)連接失敗, 就需要查看錯(cuò)誤信息(Tomcat 的日志)
    // 常見的問題就是, url, username, password 等信息寫錯(cuò)了, 或者數(shù)據(jù)庫(kù)沒有啟動(dòng).
    public static Connection getConnection() {
        try {
            return getDataSource().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println("數(shù)據(jù)庫(kù)連接失敗, 請(qǐng)檢查數(shù)據(jù)庫(kù)是否啟動(dòng)正確, url 是否正確");
        return null;
    }
 
    public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
 
 
}

需要查看了解上文提到的通過注冊(cè)驅(qū)動(dòng)獲取連接,請(qǐng)移步之前博客:注冊(cè)驅(qū)動(dòng)獲取連接

到此這篇關(guān)于詳解Java使用JDBC連接MySQL數(shù)據(jù)庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決Idea查看源代碼警告Library source does not match the bytecode for class XXX問題

    解決Idea查看源代碼警告Library source does not mat

    在使用IDEA開發(fā)時(shí),遇到第三方j(luò)ar包中的源代碼和字節(jié)碼不一致的問題,會(huì)導(dǎo)致無法正確打斷點(diǎn)進(jìn)行調(diào)試,這通常是因?yàn)閖ar包更新后源代碼沒有同步更新造成的,解決方法是刪除舊的jar包,通過Maven重新下載或手動(dòng)下載最新的源代碼包,確保IDE中的源碼與字節(jié)碼版本一致
    2024-10-10
  • 基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新的操作步驟

    基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新的操作步驟

    SpringBoot是一個(gè)用于快速開發(fā)單個(gè)微服務(wù)的框架,它基于 Spring 框架,簡(jiǎn)化了Spring應(yīng)用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 非常全面的IReport的使用教程

    非常全面的IReport的使用教程

    iReport 是為JasperReports Library和JasperReports Server設(shè)計(jì)的報(bào)表可視化設(shè)計(jì)器。本教程給大家詳細(xì)介紹IReport的使用解析,感興趣的朋友一起看看吧
    2021-10-10
  • Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例

    Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程之TCP通信完整代碼示例,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 分析HashMap 的 JDK 源碼

    分析HashMap 的 JDK 源碼

    這篇文章主要分析了HashMap 的 JDK 源碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-10-10
  • Java參數(shù)校驗(yàn)@Validated、@Valid介紹及使用詳解

    Java參數(shù)校驗(yàn)@Validated、@Valid介紹及使用詳解

    Javax.validation是?spring?集成自帶的一個(gè)參數(shù)校驗(yàn)接口,可通過添加注解來設(shè)置校驗(yàn)條件,這篇文章主要介紹了Java參數(shù)校驗(yàn)@Validated、@Valid介紹及使用詳解,需要的朋友可以參考下
    2024-08-08
  • Java編程利用socket多線程訪問服務(wù)器文件代碼示例

    Java編程利用socket多線程訪問服務(wù)器文件代碼示例

    這篇文章主要介紹了Java編程利用socket多線程訪問服務(wù)器文件代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法

    jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法

    這篇文章主要介紹了jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法,包括配置JAVA_HOME、Path和CLASSPATH,以及如何驗(yàn)證配置是否成功,文章還講解了如何切換JDK版本,并解決了安裝新JDK后環(huán)境變量配置不生效的問題,需要的朋友可以參考下
    2024-12-12
  • 淺談Java實(shí)現(xiàn)面向?qū)ο缶幊蘪ava oop

    淺談Java實(shí)現(xiàn)面向?qū)ο缶幊蘪ava oop

    這篇文章主要介紹了淺談Java實(shí)現(xiàn)面向?qū)ο缶幊蘪ava oop,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼

    SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼

    這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09

最新評(píng)論

安宁市| 嘉峪关市| 宁城县| 芒康县| 庄河市| 桂阳县| 太谷县| 寿光市| 吴江市| 改则县| 前郭尔| 肥城市| 云霄县| 西安市| 洪江市| 红原县| 济源市| 濮阳县| 洪湖市| 南皮县| 南江县| 辽中县| 高阳县| 鸡东县| 盐亭县| 玉龙| 秭归县| 江孜县| 新晃| 姚安县| 清丰县| 上思县| 抚松县| 萝北县| 贵溪市| 沙雅县| 迭部县| 扎鲁特旗| 长兴县| 图木舒克市| 灌阳县|