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

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

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

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

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

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

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

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

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

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

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

1)原生方法

1.1)加載JDBC 驅(qū)動:

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

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

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

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

Statement statement =conn.createStatement();

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

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

preparedStatement 事先準備好的聲明

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

ResultSet rs =statement.executeQuery(sql);

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

1.6)連起來

在以反射的方式注冊驅(qū)動從而獲取數(shù)據(jù)庫的連接的方法,詳情可以參考我以前的博客,因為本文側(cè)重于講解DataSource連接數(shù)據(jù)庫的方法!所以在此不作贅述~

1.7)原生方法的不足:

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

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

三:IDEA中配置jar包

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

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

四:url必知必會

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

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

連接信息~

列位您可記住嘞  127.0.0.1 這個地址:就是當前自己電腦的IP地址

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

IP地址就相當于我們點外賣訂單所填的地址,端口號就是外賣訂單所寫的收件人!~具體交給誰吃!~ 

而且這個URL沒必要強行記

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碼云倉庫)等,需要的時候復(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ì)上是一個管理了單例的 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ù)庫連接失敗是很常見的問題. 如果失敗, 后續(xù)的操作肯定也是失敗的.
    // 如果發(fā)現(xiàn) Connect 為 null, 就說明數(shù)據(jù)庫連接失敗, 就需要查看錯誤信息(Tomcat 的日志)
    // 常見的問題就是, url, username, password 等信息寫錯了, 或者數(shù)據(jù)庫沒有啟動.
    public static Connection getConnection() {
        try {
            return getDataSource().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        System.out.println("數(shù)據(jù)庫連接失敗, 請檢查數(shù)據(jù)庫是否啟動正確, 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();
        }
    }
 
 
}

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

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

相關(guān)文章

  • SpringBoot中實現(xiàn)訂單30分鐘自動取消的三種方案分享

    SpringBoot中實現(xiàn)訂單30分鐘自動取消的三種方案分享

    在電商和其他涉及到在線支付的應(yīng)用中,通常需要實現(xiàn)一個功能:如果用戶在生成訂單后的一定時間內(nèi)未完成支付,系統(tǒng)將自動取消該訂單,本文將詳細介紹基于Spring Boot框架實現(xiàn)訂單30分鐘內(nèi)未支付自動取消的幾種方案,并提供實例代碼,需要的朋友可以參考下
    2023-10-10
  • Spring Boot支持HTTPS步驟詳解

    Spring Boot支持HTTPS步驟詳解

    這篇文章主要介紹了Spring Boot支持HTTPS步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-09-09
  • java 獲取字節(jié)碼文件的幾種方法總結(jié)

    java 獲取字節(jié)碼文件的幾種方法總結(jié)

    這篇文章主要介紹了java 獲取字節(jié)碼文件的幾種方法總結(jié)的相關(guān)資料,這里總結(jié)了三種方法幫助大家實現(xiàn)該功能,需要的朋友可以參考下
    2017-08-08
  • IntelliJ IDEA(或者JetBrains PyCharm)中彈出

    IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License Activation"的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法介紹

    Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法介紹

    這篇文章主要介紹了Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法,同時需要注意系統(tǒng)默認的文本保存編碼的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • 淺析java中的取整(/)和求余(%)

    淺析java中的取整(/)和求余(%)

    這篇文章主要介紹了淺析java中的取整(/)和求余(%),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-08-08
  • java中BigDecimal的介紹及使用教程BigDecimal格式化及BigDecimal常見問題

    java中BigDecimal的介紹及使用教程BigDecimal格式化及BigDecimal常見問題

    BigDecimal是Java在java.math包中提供的線程安全的API類,用來對超過16位有效位的數(shù)進行精確的運算,這篇文章主要介紹了java中BigDecimal的介紹及使用,BigDecimal格式化,BigDecimal常見問題,需要的朋友可以參考下
    2023-08-08
  • MyBatis中criteria的or(或查詢)語法說明

    MyBatis中criteria的or(或查詢)語法說明

    這篇文章主要介紹了MyBatis中criteria的or(或查詢)語法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringCloud實戰(zhàn)之Zuul網(wǎng)關(guān)服務(wù)

    SpringCloud實戰(zhàn)之Zuul網(wǎng)關(guān)服務(wù)

    服務(wù)網(wǎng)關(guān)是分布式架構(gòu)中不可缺少的組成部分,是外部網(wǎng)絡(luò)和內(nèi)部服務(wù)之間的屏障。這篇文章主要介紹了SpringCloud實戰(zhàn)之Zuul網(wǎng)關(guān)服務(wù)。一起跟隨小編過來看看吧
    2018-05-05
  • java數(shù)據(jù)隨機分頁實現(xiàn)方案

    java數(shù)據(jù)隨機分頁實現(xiàn)方案

    本文主要介紹了java數(shù)據(jù)隨機分頁實現(xiàn)方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-06-06

最新評論