IDEA上實(shí)現(xiàn)JDBC編程的方法步驟
前言
前面我們寫MySQL的SQL命令的時(shí)候都是在MySQL的客戶端寫并且操作數(shù)據(jù)庫的,那么今天我將為大家分享如何在IDEA上實(shí)現(xiàn)對(duì)MySQL數(shù)據(jù)庫的操作。
什么是JDBC編程
JDBC編程是指使用Java Database Connectivity(JDBC,Java數(shù)據(jù)庫連接)技術(shù)來連接和操作關(guān)系型數(shù)據(jù)庫的過程。JDBC是一個(gè)標(biāo)準(zhǔn)的Java API,它定義了一套用于連接和操作各種關(guān)系型數(shù)據(jù)庫的通用接口,使得Java程序可以訪問和操作不同類型的數(shù)據(jù)庫,如MySQL、Oracle、SQL Server等。
JDBC編程的原理
JDBC編程的原理是通過JDBC API來進(jìn)行對(duì)關(guān)系型數(shù)據(jù)庫進(jìn)行操作。具體來說,JDBC提供了一系列接口和類,這些接口和類封裝了所有數(shù)據(jù)庫相關(guān)的細(xì)節(jié),程序員只需要通過這些接口和類,以編程的方式操作數(shù)據(jù)庫即可。
JDBC的主要工作流程如下:
1.加載數(shù)據(jù)庫驅(qū)動(dòng)程序:通過Class.forName()方法加載一個(gè)特定的數(shù)據(jù)庫驅(qū)動(dòng)程序,以便程序能夠和相應(yīng)的數(shù)據(jù)庫進(jìn)行連接。
2.連接到數(shù)據(jù)庫:使用DriverManager.getConnection()方法以指定的數(shù)據(jù)庫URL,用戶名和密碼為參數(shù)創(chuàng)建一個(gè)數(shù)據(jù)庫連接對(duì)象,連接到數(shù)據(jù)庫。
3.創(chuàng)建執(zhí)行對(duì)象:使用已經(jīng)建立的數(shù)據(jù)庫連接對(duì)象創(chuàng)建一個(gè)Statement或者PreparedStatement對(duì)象,用于向數(shù)據(jù)庫發(fā)送一條SQL語句進(jìn)行執(zhí)行。
4.執(zhí)行SQL語句并處理結(jié)果集:通過對(duì)Statement或者PreparedStatement對(duì)象調(diào)用executeQuery() / executeUpdate()等方法發(fā)送SQL語句到數(shù)據(jù)庫進(jìn)行執(zhí)行,在執(zhí)行過程中如果有需要傳遞參數(shù),則采用參數(shù)綁定的方式,最后獲取執(zhí)行結(jié)果的數(shù)據(jù)集(ResultSet)。
5.關(guān)閉連接:執(zhí)行完SQL語句并處理完結(jié)果集之后,關(guān)閉相應(yīng)的數(shù)據(jù)庫連接對(duì)象,釋放資源。
JDBC編程的優(yōu)勢(shì)
JDBC因其可移植性和易用性而被廣泛使用,它可以大大簡(jiǎn)化Java程序和關(guān)系型數(shù)據(jù)庫之間的交互,使得Java應(yīng)用程序能夠以編程的方式對(duì)關(guān)系型數(shù)據(jù)庫進(jìn)行增、刪、改、查等操作。
如何在IDAE上搭建JDBC編程環(huán)境
第一步:在MAVEN官網(wǎng)上下載IDEA和SQL數(shù)據(jù)庫建立聯(lián)系的jar包。
訪問MAVEN官網(wǎng):MAVEN官網(wǎng)
頂部導(dǎo)航欄搜索MySQL
下載 MySQL Connector Java
第二步:將我們下載的MySQL Connector Java 的jar包添加到IDEA的項(xiàng)目依賴中。
復(fù)制文件,并打開IDEA,新建一個(gè)Director文件
將剛下載的jar包復(fù)制在該Director文件中。
然后我們可以看到,該jar包已經(jīng)被加載進(jìn)去了。
然后我們可以看到關(guān)于MySQL的各種操作
進(jìn)行JDBC編程
JDBC需要以下步驟來完成開發(fā)
1.創(chuàng)建并初始化一個(gè)數(shù)據(jù)源
2.和數(shù)據(jù)庫服務(wù)器建立連接
3.構(gòu)造SQL語句
4.執(zhí)行SQL語句
5.釋放必要的資源
1.創(chuàng)建并初始化一個(gè)數(shù)據(jù)源
DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false"); ((MysqlDataSource)dataSource).setUser("root"); ((MysqlDataSource)dataSource).setPassword("123456");
實(shí)現(xiàn)JDBC操作我們需要MysqlDataSource這個(gè)類型的對(duì)象。
url叫做唯一資源定位符,描述網(wǎng)絡(luò)上的某個(gè)資源所在的位置。
"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false"
需要登陸我們的MySQL用戶名和密碼,MySQL用戶名我么可以在MySQL客戶端中使用下面的SQL語句查詢,一般用戶名默認(rèn)都是root,密碼就是你的MySQL密碼。
SELECT * FROM MYSQL.USER;
2.和數(shù)據(jù)庫服務(wù)器建立聯(lián)系
Connection connection = dataSource.getConnection();
注意這里的Connection類要使用第一個(gè),導(dǎo)入的包是不同的。
3.構(gòu)造SQL語句
String sql = "insert into student values(1,'張三')"; PreparedStatement statement = connection.prepareStatement(sql);
sql是我們的SQL命令,而 PreparedStatement statement = connection.prepareStatement(sql); 是對(duì)SQL命令進(jìn)行預(yù)編譯,在這里為什么要對(duì)SQL語句進(jìn)行預(yù)編譯呢?
服務(wù)器對(duì)sql語句進(jìn)行處理,如果sql語句過多,那么服務(wù)器的壓力就會(huì)很大,讓客戶端來對(duì)sql語句進(jìn)行預(yù)編譯,服務(wù)器做的工作就簡(jiǎn)單點(diǎn),壓力就會(huì)減少。
4.執(zhí)行SQL語句
int ret = statement.executeUpdate(); System.out.println(ret);
這個(gè)ret就是
5.釋放必要的資源
statement.close(); connection.close();
不同的時(shí)候我們就關(guān)閉資源,防止資源浪費(fèi)。
運(yùn)行我們的代碼看看效果。
到此這篇關(guān)于IDEA上實(shí)現(xiàn)JDBC編程的方法步驟的文章就介紹到這了,更多相關(guān)IDEA JDBC編程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?框架中的?Bean?作用域(Scope)使用詳解
Spring框架中的Bean作用域(Scope)決定了在應(yīng)用程序中創(chuàng)建和管理的Bean對(duì)象的生命周期和可見性。本文將詳細(xì)介紹Spring框架中的Bean作用域的不同類型,包括Singleton、Prototype、Request、Session和Application,并解釋它們的特點(diǎn)和適用場(chǎng)景。2023-09-09java基于包結(jié)構(gòu)的請(qǐng)求路由實(shí)現(xiàn)實(shí)例分享
基于包結(jié)構(gòu)的請(qǐng)求路由簡(jiǎn)單實(shí)現(xiàn)實(shí)例分享,大家參考使用吧2013-12-12SpringBoot集成Activiti7工作流引擎的示例代碼
本文主要介紹了SpringBoot集成Activiti7工作流引擎的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11Spring gateway + Oauth2實(shí)現(xiàn)單點(diǎn)登錄及詳細(xì)配置
gateway是基于 WebFlux的響應(yīng)式編程框架,所以在使用securityConfig時(shí)采用的注解是@EnableWebFluxSecurity,接下來通過本文給大家介紹Spring gateway + Oauth2實(shí)現(xiàn)單點(diǎn)登錄及詳細(xì)配置,感興趣的朋友一起看看吧2021-09-09SpringBoot整合Sharding-JDBC實(shí)現(xiàn)MySQL8讀寫分離
本文是一個(gè)基于SpringBoot整合Sharding-JDBC實(shí)現(xiàn)讀寫分離的極簡(jiǎn)教程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2021-07-07詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版
這篇文章主要介紹了詳解SpringBoot與SpringCloud的版本對(duì)應(yīng)詳細(xì)版,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09java實(shí)現(xiàn)日歷應(yīng)用程序設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)日歷應(yīng)用程序設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06