詳解Java使用JDBC連接MySQL數(shù)據庫
一:什么是數(shù)據庫,為什么要有數(shù)據庫?
數(shù)據,數(shù)據庫,數(shù)據庫管理系統(tǒng)和數(shù)據庫系統(tǒng)是與數(shù)據庫技術密切相關的四個基本概念。
數(shù)據庫相信大家都耳熟能詳了,其實數(shù)據庫顧名思義就是存放數(shù)據的倉庫,只不過這個倉庫是在計算機存儲設備上,而且數(shù)據是按一定的格式存放的~
可能有朋友就要打斷我施法了,停停停,我們Java程序猿在IDEA里面和控制臺你儂我儂,沒有對象new個對象存儲在內存JVM的堆上就行了,學數(shù)據庫干啥???
這時候我們就需要了解到:內存(Memory)也被稱為內存儲器,其作用是用于暫時存放CPU中的運算數(shù)據,以及與硬盤等外部存儲器交換的數(shù)據。
以疫情期間為例,把人隔離觀察住的酒店,就好比是內存,家喻戶曉的JVM就是放在內存上的~~~ 酒店是給人住的,他的空間是寶貴的,然而每個人每天生活必需品,衣食住行等等,隔離一天兩天可能酒店還放得下,但是隔離十天半個月,一年半載呢?酒店是住人的,不是放東西的~~~酒店寸土寸金每個地方都很寶貴,拿酒店(內存)來放行李和必需品等(海量數(shù)據~),如果酒店還是西安的W酒店,這豈不是很奢侈?~~~你拿來存放自己和跟班大批行李~老哥,還缺行李不?(doge),想要存放大批東西(海量數(shù)據),我直接把十四運的主場館(外存上的數(shù)據庫)(69.6畝)給你放行李(海量數(shù)據)~!
這下諸位應該都了然為什么我們需要搞數(shù)據庫了吧?
二:如何使用Java連接數(shù)據庫~
1)原生方法
1.1)加載JDBC 驅動:
Class.forName(driver);// mysql 數(shù)據庫:“com.mysql.jdbc.Driver”
1.2)建立數(shù)據庫連接:
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í)行所準備的語句,并且返回結果集合 ResultSet
preparedStatement 事先準備好的聲明
Execute the prepared statement.就是執(zhí)行準備好的語句!
ResultSet rs =statement.executeQuery(sql);
1.5)關閉記錄集,關閉聲明,關閉連接對象
1.6)連起來
在以反射的方式注冊驅動從而獲取數(shù)據庫的連接的方法,詳情可以參考我以前的博客,因為本文側重于講解DataSource連接數(shù)據庫的方法!所以在此不作贅述~
1.7)原生方法的不足:
每次使用都要創(chuàng)建連接,使用完畢后還必須關閉連接,操作繁瑣,易出錯;
連接數(shù)據庫資源不便統(tǒng)一管理;
三:IDEA中配置jar包
工欲善其事必先利其器,在前期的學習過程中,我們使用JDBC連接MySQL的時候應該手動配置Jar包
移步之前的帖子——>配置Java包流程及Jar包下載
四:url必知必會
我們在瀏覽器的地址欄里輸入的網站地址叫做URL (Uniform Resource Locator,統(tǒng)一資源定位符)。.就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。
在使用連接數(shù)據庫的時候需要先知道數(shù)據庫的

連接信息~
列位您可記住嘞 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碼云倉庫)等,需要的時候復制粘貼一改就行了!~
五: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 本質上是一個管理了單例的 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ù)據庫連接失敗是很常見的問題. 如果失敗, 后續(xù)的操作肯定也是失敗的.
// 如果發(fā)現(xiàn) Connect 為 null, 就說明數(shù)據庫連接失敗, 就需要查看錯誤信息(Tomcat 的日志)
// 常見的問題就是, url, username, password 等信息寫錯了, 或者數(shù)據庫沒有啟動.
public static Connection getConnection() {
try {
return getDataSource().getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("數(shù)據庫連接失敗, 請檢查數(shù)據庫是否啟動正確, 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();
}
}
}需要查看了解上文提到的通過注冊驅動獲取連接,請移步之前博客:注冊驅動獲取連接
到此這篇關于詳解Java使用JDBC連接MySQL數(shù)據庫的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決Idea查看源代碼警告Library source does not mat
在使用IDEA開發(fā)時,遇到第三方jar包中的源代碼和字節(jié)碼不一致的問題,會導致無法正確打斷點進行調試,這通常是因為jar包更新后源代碼沒有同步更新造成的,解決方法是刪除舊的jar包,通過Maven重新下載或手動下載最新的源代碼包,確保IDE中的源碼與字節(jié)碼版本一致2024-10-10
基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟
SpringBoot是一個用于快速開發(fā)單個微服務的框架,它基于 Spring 框架,簡化了Spring應用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-11-11
Java參數(shù)校驗@Validated、@Valid介紹及使用詳解
Javax.validation是?spring?集成自帶的一個參數(shù)校驗接口,可通過添加注解來設置校驗條件,這篇文章主要介紹了Java參數(shù)校驗@Validated、@Valid介紹及使用詳解,需要的朋友可以參考下2024-08-08
jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法
這篇文章主要介紹了jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法,包括配置JAVA_HOME、Path和CLASSPATH,以及如何驗證配置是否成功,文章還講解了如何切換JDK版本,并解決了安裝新JDK后環(huán)境變量配置不生效的問題,需要的朋友可以參考下2024-12-12
SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼
這篇文章主要為大家介紹了SpringMVC4.3解析器HandlerMethodArgumentResolver接口源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

