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

Java?JDBC使用入門講解

 更新時(shí)間:2022年12月08日 10:18:39   作者:-BoBooY-  
JDBC是指Java數(shù)據(jù)庫連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來連接?Java?編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫,本篇文章我們來了解MySQL連接JDBC的流程方法

前言:本節(jié)我們開始學(xué)習(xí)JDBC,JDBC的基礎(chǔ)對(duì)于我們開發(fā)來說非常的重要,大家一定要重視起來!

*.學(xué)習(xí)目標(biāo)

  • 掌握J(rèn)DBC的的CRUD
  • 理解JDBC中各個(gè)對(duì)象的作用
  • 掌握Druid的使用

1、JDBC概述

在開發(fā)中我們使用的是java語言,那么勢(shì)必要通過java語言操作數(shù)據(jù)庫中的數(shù)據(jù)。這就是接下來要學(xué)習(xí)的JDBC。

1.1、JDBC的概念

JDBC 就是使用Java語言操作關(guān)系型數(shù)據(jù)庫的一套API

全稱:( Java DataBase Connectivity ) Java 數(shù)據(jù)庫連接

我們開發(fā)的同一套Java代碼是無法操作不同的關(guān)系型數(shù)據(jù)庫,因?yàn)槊恳粋€(gè)關(guān)系型數(shù)據(jù)庫的底層實(shí)現(xiàn)細(xì)節(jié)都不一樣。如果這樣,問題就很大了,在公司中可以在開發(fā)階段使用的是MySQL數(shù)據(jù)庫,而上線時(shí)公司最終選用oracle數(shù)據(jù)庫,我們就需要對(duì)代碼進(jìn)行大批量修改,這顯然并不是我們想看到的。我們要做到的是同一套Java代碼操作不同的關(guān)系型數(shù)據(jù)庫,而此時(shí)sun公司就指定了一套標(biāo)準(zhǔn)接口(JDBC),JDBC中定義了所有操作關(guān)系型數(shù)據(jù)庫的規(guī)則。眾所周知接口是無法直接使用的,我們需要使用接口的實(shí)現(xiàn)類,而這套實(shí)現(xiàn)類(稱之為:驅(qū)動(dòng))就由各自的數(shù)據(jù)庫廠商給出。

1.2、JDBC的本質(zhì)

  • 官方(sun公司)定義的一套操作所有關(guān)系型數(shù)據(jù)庫的規(guī)則,即接口
  • 各個(gè)數(shù)據(jù)庫廠商去實(shí)現(xiàn)這套接口,提供數(shù)據(jù)庫驅(qū)動(dòng)jar包
  • 我們可以使用這套接口(JDBC)編程,真正執(zhí)行的代碼是驅(qū)動(dòng)jar包中的實(shí)現(xiàn)類

1.3、JDBC的好處

  • 各數(shù)據(jù)庫廠商使用相同的接口,Java代碼不需要針對(duì)不同數(shù)據(jù)庫分別開發(fā)
  • 可隨時(shí)替換底層數(shù)據(jù)庫,訪問數(shù)據(jù)庫的Java代碼基本不變

以后編寫操作數(shù)據(jù)庫的代碼只需要面向JDBC(接口),操作哪兒個(gè)關(guān)系型數(shù)據(jù)庫就需要導(dǎo)入該數(shù)據(jù)庫的驅(qū)動(dòng)包,如需要操作MySQL數(shù)據(jù)庫,就需要再項(xiàng)目中導(dǎo)入MySQL數(shù)據(jù)庫的驅(qū)動(dòng)包。如下圖就是MySQL驅(qū)動(dòng)包

2、JDBC快速入門

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

(1)編寫Java代碼

(2)Java代碼將SQL發(fā)送到MySQL服務(wù)端

(3)MySQL服務(wù)端接收到SQL語句并執(zhí)行該SQL語句

(4)將SQL語句執(zhí)行的結(jié)果返回給Java代碼

2.1、編寫代碼

創(chuàng)建工程,導(dǎo)入驅(qū)動(dòng)jar包

注冊(cè)驅(qū)動(dòng)

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

獲取連接

Java代碼需要發(fā)送SQL給MySQL服務(wù)端,就需要先建立連接

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

定義SQL語句

String sql = “update…” ;

獲取執(zhí)行SQL對(duì)象

執(zhí)行SQL語句需要SQL執(zhí)行對(duì)象,而這個(gè)執(zhí)行對(duì)象就是Statement對(duì)象

Statement stmt = conn.createStatement();

執(zhí)行SQL

stmt.executeUpdate(sql); 

處理返回結(jié)果

釋放資源

stmt.close();
conn.close();

2.2、完整案例

新建一個(gè)空項(xiàng)目

新建模塊

導(dǎo)入驅(qū)動(dòng)包

在添加為庫文件的時(shí)候,有如下三個(gè)選項(xiàng)

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

創(chuàng)建JdbcDemo類并編寫如下代碼:

package com.bby;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcDemo {
    public static void main(String[] args) throws Exception {
        //1. 注冊(cè)驅(qū)動(dòng)
        Class.forName("com.mysql.jdbc.Driver");
        //2.獲取連接
        String url = "jdbc:mysql://localhost:3306/jdbc";
        String username = "root";
        String password = "1234";
        Connection connection = DriverManager.getConnection(url,username,password);
        //3.定義sql語句
        String sql = "update acount set money = 1000 where id = 1";
        //4.獲取執(zhí)行sql對(duì)象Statement
        Statement statement = connection.createStatement();
        //5.執(zhí)行sql
        int count = statement.executeUpdate(sql);
        //6.處理結(jié)果
        System.out.println(count);
        //7.釋放資源
        statement.close();
        connection.close();
    }
}

查看控制臺(tái)結(jié)果

數(shù)據(jù)庫數(shù)據(jù)更新前

數(shù)據(jù)庫數(shù)據(jù)更新后

To be continued…

到此這篇關(guān)于Java JDBC使用入門講解的文章就介紹到這了,更多相關(guān)Java JDBC內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java8 利用reduce實(shí)現(xiàn)將列表中的多個(gè)元素的屬性求和并返回操作

    java8 利用reduce實(shí)現(xiàn)將列表中的多個(gè)元素的屬性求和并返回操作

    這篇文章主要介紹了java8 利用reduce實(shí)現(xiàn)將列表中的多個(gè)元素的屬性求和并返回操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Hadoop中的壓縮與解壓縮案例詳解

    Hadoop中的壓縮與解壓縮案例詳解

    壓縮就是通過某種技術(shù)(算法)把原始文件變下,相應(yīng)的解壓就是把壓縮后的文件變成原始文件,本文給大家分享Hadoop中的壓縮知識(shí),感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Spring?AOP底層機(jī)制之代理模式

    Spring?AOP底層機(jī)制之代理模式

    如何實(shí)現(xiàn)在不修改源碼的基礎(chǔ)上實(shí)現(xiàn)代碼功能的增強(qiáng)呢?spring為我們提供了代理模式。所謂的代理模式通俗來說就是一個(gè)中介,它給某一個(gè)對(duì)象提供一個(gè)代理對(duì)象,并由代理對(duì)象控制原對(duì)象的引用,從而實(shí)現(xiàn)在不修改源碼的基礎(chǔ)上實(shí)現(xiàn)代碼功能的增強(qiáng)
    2022-08-08
  • Spring?populateBean屬性賦值和自動(dòng)注入

    Spring?populateBean屬性賦值和自動(dòng)注入

    這篇文章主要為大家介紹了Spring?populateBean屬性賦值和自動(dòng)注入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • java:無法訪問org.springframework.boot.SpringApplication問題

    java:無法訪問org.springframework.boot.SpringApplication問題

    這篇文章主要介紹了java:無法訪問org.springframework.boot.SpringApplication問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 解決使用ProcessBuilder踩到的坑及注意事項(xiàng)

    解決使用ProcessBuilder踩到的坑及注意事項(xiàng)

    這篇文章主要介紹了解決使用ProcessBuilder踩到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中 this和super的用法與區(qū)別小結(jié)

    Java中 this和super的用法與區(qū)別小結(jié)

    在Java的學(xué)習(xí)與開發(fā)者我們經(jīng)常遇到this和super關(guān)鍵字,本文主要介紹了Java中 this和super的用法與區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • JavaWeb文件下載功能實(shí)例代碼

    JavaWeb文件下載功能實(shí)例代碼

    這篇文章主要為大家詳細(xì)介紹了JavaWeb文件下載功能實(shí)例代碼,代碼簡(jiǎn)單實(shí)用,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 詳解高性能緩存Caffeine原理及實(shí)戰(zhàn)

    詳解高性能緩存Caffeine原理及實(shí)戰(zhàn)

    Caffeine是基于Java 8開發(fā)的,提供了近乎最佳命中率的高性能本地緩存組件,Spring5開始不再支持Guava Cache,改為使用Caffeine。Caffeine提供的內(nèi)存緩存使用參考Google guava的API
    2021-06-06
  • SpringBoot中的@PreAuthorize注解詳解

    SpringBoot中的@PreAuthorize注解詳解

    這篇文章主要介紹了SpringBoot中的@PreAuthorize注解詳解,@PreAuthorize注解會(huì)在方法執(zhí)行前進(jìn)行權(quán)限驗(yàn)證,支持Spring?EL表達(dá)式,它是基于方法注解的權(quán)限解決方案,需要的朋友可以參考下
    2023-09-09

最新評(píng)論