国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JDBC連接數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了JDBC連接數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、JDBC概念

1.1Java操作數(shù)據(jù)庫的流程

1.2編寫代碼步驟

1.3具體操作

二、JDBC API詳解

2.1 DriverManager(驅(qū)動管理類) 作用

2.2 Connection(數(shù)據(jù)庫連接對象)作用:

2.3 Statement??

2.4 ResultSet (結(jié)果對象集)作用

2.5 PreparedStatement?

三、數(shù)據(jù)庫連接池實(shí)現(xiàn)

一、JDBC概念

JDBC 就是使用 Java語言操作關(guān)系型數(shù)據(jù)庫的一套API,全稱(Java DataBase Connectivity)? ? ? ? java數(shù)據(jù)庫連接;

1.1Java操作數(shù)據(jù)庫的流程

  • 第一步:編寫Java代碼
  • 第二步:Java代碼將SQL發(fā)送到MySQL服務(wù)端
  • 第三步:MySQL服務(wù)端接收到SQL語句并執(zhí)行該SQL語句
  • 第四步:將SQL語句執(zhí)行的結(jié)果返回給Java代碼

1.2編寫代碼步驟

  • 創(chuàng)建工程,導(dǎo)入驅(qū)動jar包
  • 注冊驅(qū)動
  • 獲取連接
  • 定義SQL語句
  • 獲取執(zhí)行SQL對象
  • 執(zhí)行SQL
  • 處理返回結(jié)果
  • 釋放資源

1.3具體操作

1.3.1 創(chuàng)建新的空的項(xiàng)目

JDBC連接數(shù)據(jù)庫

1.3.2定義項(xiàng)目的名稱,并指定位置

JDBC連接數(shù)據(jù)庫

?1.3.3 對項(xiàng)目進(jìn)行設(shè)置,JDK版本,編譯版本

JDBC連接數(shù)據(jù)庫

?1.3.4 創(chuàng)建模塊,指定模塊的名稱及位置

JDBC連接數(shù)據(jù)庫

?1.3.5 導(dǎo)入驅(qū)動包

將mysql的驅(qū)動包放在模塊下的lib(自己創(chuàng)建并命名的文件夾)目錄下,并將該jar添加為庫文件。

驅(qū)動包的下載:

  • 1.打開 MySQL 官網(wǎng):https://www.mysql.com/ mysql官網(wǎng)
  • 2.點(diǎn)擊 downloads,把頁面滾動到最下面,點(diǎn)擊 MySQL Community (GPL) Downloads
  • 3.點(diǎn)擊 Connector/J
  • 4.點(diǎn)擊 General Availability(GA) Releases,在 Select Operating System 下拉列表選擇 Platform Independ

JDBC連接數(shù)據(jù)庫

JDBC連接數(shù)據(jù)庫

JDBC連接數(shù)據(jù)庫

JDBC連接數(shù)據(jù)庫

JDBC連接數(shù)據(jù)庫

?注意在添加庫文件時有三個選項(xiàng):

  • Global Library : 全局有效
  • Project Library : 項(xiàng)目有效
  • Module Library : 模塊有效

根據(jù)自己的需求進(jìn)行選擇,這里我選擇的是模塊有效

1.3.6 在src下創(chuàng)建類

JDBC連接數(shù)據(jù)庫

?然后編寫如下代碼:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class test01 {
    public static void main(String[] args) throws Exception {
        //1.注冊驅(qū)動
        Class.forName("com.mysql.jdbc.Driver");
        //2.獲取連接
        String url ="jdbc:mysql://127.0.0.1:3306/dd1";
        String username ="root";
        String password ="root3340";
        Connection conn = DriverManager.getConnection(url,username,password);
        //3.定義sql
        String sql ="update account set money =2000 where id =1";
        //4.獲取執(zhí)行sql的對象
        Statement stmt = conn.createStatement();
       //5.執(zhí)行sql
        int count= stmt.executeUpdate(sql);//返回值返回的是影響的行數(shù)
        //6.處理返回結(jié)果
        System.out.println(count);
        //7.釋放資源
        conn.close();
        stmt.close();
    }
}

二、JDBC API詳解

2.1 DriverManager(驅(qū)動管理類) 作用

2.1.1注冊驅(qū)動

registerDriver方法用于注冊驅(qū)動的

Class.forName("com.mysql.jdbc.Driver");

查看Driver類的源碼:

JDBC連接數(shù)據(jù)庫

?注意:MySQL 5之后的驅(qū)動包,可以省略注冊驅(qū)動的步驟;

?自動加載jar包中META-INF/services/java.sql.Driver文件中的驅(qū)動類;

2.1.2 獲取數(shù)據(jù)庫連接

static Connection? ? ? ? ?getConnection(String url,String user,String password)

參數(shù):

  • url:連接路徑
  1. 語法:jdbc:mysql://ip地址(域名):端口號/數(shù)據(jù)庫名稱?參數(shù)鍵值對1&參數(shù)鍵值對2...
  2. 實(shí)例:jbdc:mysql://127.0.0.1:3306/dd1
  • user:用戶名
  • password:密碼

2.2 Connection(數(shù)據(jù)庫連接對象)作用:

  • 獲取執(zhí)行SQL的對象
  • 管理事務(wù)

2.2.1 獲取執(zhí)行對象

  • 普通執(zhí)行SQL對象:
  • Statement createStatement()
  • 預(yù)編譯SQL的執(zhí)行SQL對象:防止SQL注入:
  • PreparedStatement prepareStatement(sql)
  • 執(zhí)行存儲過程的對象
  • CallableStatement prepareCall(sql)

2.2.2 事務(wù)管理

Connection接口中定義了3個對應(yīng)的方法

  • 開啟事務(wù) void setAutoCommit(boolean autoCommit) 將此連接的自動提交模式設(shè)置為給定狀態(tài)。參與autoCommit表示是否自動提交事務(wù),true表示自動提交事務(wù),false表示手動提交事務(wù)。而開啟事務(wù)需要將該參數(shù)設(shè)為false。
  • 提交事務(wù) void commit() 使自上次提交/回滾以來所做的所有更改為永久更改,并釋放此Connection對象當(dāng)前持有的所有數(shù)據(jù)庫鎖。
  • 回滾事務(wù) void rollback() 撤銷當(dāng)前事務(wù)中所做的更改,并釋放此Connection對象當(dāng)前持有的所有數(shù)據(jù)庫鎖

2.3 Statement??

概述:Statement對象的作用就是用來執(zhí)行SQL語句,而針對不同類型的SQL語句使用的方法也不一樣。

  • 執(zhí)行DDL、DML語句
  • int executeUpdate(String sql) 執(zhí)行給定的SQL語句,這可能是INSERT,UPDATE或DELETE語句,或者不返回任何內(nèi)容,如SQL,DDL語句的SQL語句。
  • 執(zhí)行DQL語句
  • ResultSet executeQuery(String sql)? 執(zhí)行給定的SQL語句,該語句返回單個ResultSet對象。

2.4 ResultSet (結(jié)果對象集)作用

封裝SQL查詢語句的結(jié)果。

執(zhí)行DQL語句就會返回該對象,對應(yīng)執(zhí)行DQL語句的方法如下 :
ResultSet executeQuery(sql):執(zhí)行DQL語句,返回ResultSet 對象

ResultSet對象提供了操作查詢結(jié)果數(shù)據(jù)的方法如下:

  • ?boolean next()
  • 將光標(biāo)從當(dāng)前位置向前移動一位
  • 判斷當(dāng)前行是否為有效行;ture:有效行,當(dāng)前行有數(shù)據(jù);false:無效行,當(dāng)前行沒有數(shù)據(jù)
  • xxx getxxx (獲取數(shù)據(jù))
  • xxx:數(shù)據(jù)類型 如int getInt(參數(shù));String getString(參數(shù))參數(shù):int類型的參數(shù),列的編號,從1開始,String類型的參數(shù):列的名稱。

?2.5 PreparedStatement?

  • 作用:預(yù)編譯SQL語句并執(zhí)行,防止SQL注入問題;
  • SQL注入:SQL注入是通過操作輸入來修改事先定義好的SQL語句,用以達(dá)到執(zhí)行代碼對服務(wù)器攻擊的方式。
  • 1.獲取PreparedStudent對象
  • String sql ="select *from user where username ="root" and password ="1234";
  • 通過Connection對象獲取,并傳入對應(yīng)sql語句;
  • PreparedStatement pstmt = conn.preparedstatement(sql);
  • 2.設(shè)置參數(shù)值
  • PreparedStatement對象:setxxx(參數(shù)1:位置編號從1開始,參數(shù)2:xxx的值)xxx:數(shù)據(jù)類型;
  • 3.執(zhí)行SQL語句:
  • executeUpdate():執(zhí)行DDL語句和DML語句;
  • executeQuery():執(zhí)行DQL語句;
       //1:注冊驅(qū)動
        Class.forName("com.mysql.jdbc.Driver");
        //2:獲取連接
        String url ="jbdc:mysql:///dd1?useSSL=false";
        String username1 ="root";
        String password1 ="1234";
        Connection conn = DriverManager.getConnection(url,username1,password1);
        //定義接收用戶輸入和用戶名和密碼:
        String name ="zhangsan";
        String pwd ="ffff";
        //3:定義sql
        String sql ="select *from tb_user where username=? and password=?";
       //4.獲取PreparedStatement對象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //設(shè)置?
        pstmt.setString(1,name);
        pstmt.setString(2,pwd);
        //5.執(zhí)行sql
        ResultSet resultSet = pstmt.executeQuery();
        //判斷是否成功與否
        if(resultSet.next()){
            System.out.println("登錄成功!");
        }else{
            System.out.println("登錄失敗");
        }
        //7.釋放資源
        conn.close();
        pstmt.close();
        resultSet.close();

三、數(shù)據(jù)庫連接池實(shí)現(xiàn)

數(shù)據(jù)庫連接池簡介:

  • 數(shù)據(jù)庫連接池是個容器,負(fù)責(zé)分配、管理數(shù)據(jù)庫連接(Connection)
  • 它允許應(yīng)用程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個;
  • 釋放空閑時間超過最大空閑時間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏

好處:

  • 資源重用
  • 提升系統(tǒng)響應(yīng)速度
  • 避免數(shù)據(jù)庫連接遺漏
  • 標(biāo)準(zhǔn)接口:DataSource;
  • 接口提供的獲取連接的功能:Connection getConnection();
  • 常見的數(shù)據(jù)庫連接池:DBCP、C3P0、Driud;

Driud使用

  • 導(dǎo)入jar包
  • 定義配置文件
  • 加載配置文件
  • 獲取數(shù)據(jù)庫連接池對象
  • ?獲取連接

具體的步驟:

1.現(xiàn)在通過代碼實(shí)現(xiàn),首先需要先將druidjar包放到項(xiàng)目下的lib下 并添加為庫文件

JDBC連接數(shù)據(jù)庫

?2.編寫的配置文件如下:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///db1?
useSSL=false&useServerPrepStmts=true
username=root
password=1234
# 初始化連接數(shù)量
initialSize=5
# 最大連接數(shù)
maxActive=10
# 最大等待時間
maxWait=3000

3.使用的代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-450780.html

* Druid數(shù)據(jù)庫連接池演示
*/
public class DruidDemo {
 ? ?public static void main(String[] args) throws
Exception {
 ? ? ? ?//1.導(dǎo)入jar包
 ? ? ? ?//2.定義配置文件
 ? ? ? ?//3. 加載配置文件
 ? ? ? ?Properties prop = new Properties();
 ? ? ? ?prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
 ? ? ? ?//4. 獲取連接池對象
 ? ? ? ?DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
 ? ? ? ?//5. 獲取數(shù)據(jù)庫連接 Connection
 ? ? ? ?Connection connection = dataSource.getConnection();
 ? ? ? ?System.out.println(connection); //獲取到了連接后就可以繼續(xù)做其他操作了
 ? ? ?
); }}

到了這里,關(guān)于JDBC連接數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java連接mysql8.0數(shù)據(jù)庫—jdbc連接

    java連接mysql8.0數(shù)據(jù)庫—jdbc連接

    mysql官網(wǎng) 點(diǎn)擊platform Independent ,然后出現(xiàn)jar包選項(xiàng) 點(diǎn)download 點(diǎn)左下角no thanks,直接下載 原始方法,直接在項(xiàng)目下建一個lib包 然后將剛剛下好的zip解壓,復(fù)制jar包到該目錄下,右鍵jar包,選擇add as Library 出現(xiàn)一堆包,表示成功導(dǎo)入jar包 注意:Driver類創(chuàng)建時,要導(dǎo)入com.mysql.cj.

    2024年02月13日
    瀏覽(97)
  • 【大數(shù)據(jù)筆記】java jdbc連接hive數(shù)據(jù)庫;java hive連接kerberos

    【大數(shù)據(jù)筆記】java jdbc連接hive數(shù)據(jù)庫;java hive連接kerberos

    1、pom.xml配置 ????????dependency ????????????groupIdorg.apache.hive/groupId ????????????artifactIdhive-jdbc/artifactId ????????????scope2.1.1/scope ????????/dependency 2、驅(qū)動 org.apache.hive.jdbc.HiveDriver 3、用傳統(tǒng)改的Class.forName,然后DriverManager去拿。 二、java hive連接kerberos

    2024年01月19日
    瀏覽(18)
  • 數(shù)據(jù)庫--教務(wù)管理系統(tǒng)(數(shù)據(jù)庫部分--Java-jdbc連接)

    數(shù)據(jù)庫--教務(wù)管理系統(tǒng)(數(shù)據(jù)庫部分--Java-jdbc連接)

    我所設(shè)計(jì)的教務(wù)管理系統(tǒng)包括6大部分,學(xué)生信息、教師信息、課程信息、班級信息、選課信息、教授信息。該系統(tǒng)可以通過不同的群體進(jìn)行操作:學(xué)生群體可以對個人信息、班級、教師信息進(jìn)行查詢操作,對于課程則可以進(jìn)行選課操作;教師群體可以個人信息、班級信息、學(xué)

    2024年02月03日
    瀏覽(39)
  • Java的JDBC編程—連接Mysql數(shù)據(jù)庫

    Java的JDBC編程—連接Mysql數(shù)據(jù)庫

    目錄 一、 Java的數(shù)據(jù)庫編程:JDBC 二、JDBC工作原理 三、?JDBC使用 四、JDBC使用步驟總結(jié) ?五. JDBC常用接口和類 5.1 JDBC API 5.2 數(shù)據(jù)庫連接Connection 5.3 Statement對象 5.4 ResultSet對象 ? ? ?JDBC,即Java Database Connectivity,java數(shù)據(jù)庫連接。是一種用于執(zhí)行SQL語句的Java API,它是 Java中的數(shù)據(jù)

    2024年02月05日
    瀏覽(103)
  • Java數(shù)據(jù)庫連接:JDBC介紹與簡單示例

    在Java程序中,操作數(shù)據(jù)庫是必不可少的。JDBC(Java Database Connectivity)是Java中用于連接和操作數(shù)據(jù)庫的一種技術(shù)。通過JDBC,Java程序可以與各種關(guān)系型數(shù)據(jù)庫進(jìn)行交互,如MySQL、Oracle、PostgreSQL等。 JDBC是一種標(biāo)準(zhǔn)的Java API,它提供了一組接口,通過這些接口Java程序可以與數(shù)據(jù)庫

    2024年02月07日
    瀏覽(24)
  • 【Java 進(jìn)階篇】深入理解 JDBC:Java 數(shù)據(jù)庫連接詳解

    【Java 進(jìn)階篇】深入理解 JDBC:Java 數(shù)據(jù)庫連接詳解

    數(shù)據(jù)庫是現(xiàn)代應(yīng)用程序的核心組成部分之一。無論是 Web 應(yīng)用、移動應(yīng)用還是桌面應(yīng)用,幾乎都需要與數(shù)據(jù)庫交互以存儲和檢索數(shù)據(jù)。Java 提供了一種強(qiáng)大的方式來實(shí)現(xiàn)與數(shù)據(jù)庫的交互,即 JDBC(Java 數(shù)據(jù)庫連接)。本文將深入探討 JDBC 的各個方面,從基本概念到實(shí)際編程示例

    2024年02月07日
    瀏覽(26)
  • JDBC-->java如何連接數(shù)據(jù)庫(詳細(xì)版小白必備)

    JDBC-->java如何連接數(shù)據(jù)庫(詳細(xì)版小白必備)

    ?個人名片: ??作者簡介:一名大二在校生,熱愛生活,愛好敲碼! ??個人主頁 ??:holy-wangle ?系列內(nèi)容: ????tkinter前端窗口界面創(chuàng)建與優(yōu)化 ??? Java實(shí)現(xiàn)ATP小系統(tǒng) ?個性簽名: ??不積跬步,無以至千里;不積小流,無以成江海 ? ? ? ? 最近在忙著復(fù)習(xí)期末考試

    2024年02月04日
    瀏覽(23)
  • Java連接mysql數(shù)據(jù)庫方法及代碼(jdbc)

    Java連接mysql數(shù)據(jù)庫方法及代碼(jdbc)

    編譯器使用IDEA 我的相關(guān)博客: java代碼程序中連接mysql數(shù)據(jù)庫的方法及代碼 mysql數(shù)據(jù)庫并發(fā)上鎖問題,java代碼 1.首先從mysql官網(wǎng)下載mysql-connector-java.jar包到本地。 這里注意要和你本地的mysql數(shù)據(jù)庫版本相匹配! 下載相應(yīng)的壓縮包,在本地解壓即可進(jìn)行下一步操作。 2.打開自己

    2024年02月08日
    瀏覽(95)
  • Java-JDBC建立數(shù)據(jù)庫連接(MySQL)

    Java-JDBC建立數(shù)據(jù)庫連接(MySQL)

    注意:連接數(shù)據(jù)需要先在JAVA中導(dǎo)入mysql的jar包。 1.1—下載JAR包 1、打開瀏覽器搜索MySQL,進(jìn)入官網(wǎng) 2、點(diǎn)擊DOWNLOADS? ? 3、點(diǎn)擊?MySQL Community (GPL) Downloads ?4、點(diǎn)擊Connector/J 5、點(diǎn)擊Archieve 6、選擇版本,和OS,然后點(diǎn)擊下載即可。????????? 版本號 下載地址 8.0.32 https://download

    2024年02月03日
    瀏覽(101)
  • 【JDBC篇】java 如何連接數(shù)據(jù)庫(超詳細(xì)步驟)

    【JDBC篇】java 如何連接數(shù)據(jù)庫(超詳細(xì)步驟)

    本文以java連接mysql為例講解;僅僅記錄了一部分知識點(diǎn),其余我還沒學(xué)完,后面會補(bǔ)充!初學(xué)JDBC文章僅僅是我個人對知識點(diǎn)的理解,請謹(jǐn)慎參考! 目錄 Java連接數(shù)據(jù)庫前期工作: JDBC程序編寫步驟總覽 ?JDBC編程的六步: 1,注冊驅(qū)動 ? 2,獲得連接 ? 3,獲得數(shù)據(jù)庫操作對象

    2024年02月08日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包