最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL五步走JDBC編程全解讀

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

一、數(shù)據(jù)庫編程的必備條件

編程語言,如Java,C、C++、Python等 數(shù)據(jù)庫,如Oracle,MySQL,SQL Server等 數(shù)據(jù)庫驅(qū)動(dòng)包:不同的數(shù)據(jù)庫,對應(yīng)不同的編程語言提供了不同的數(shù)據(jù)庫驅(qū)動(dòng)包,如:MySQL提 供了Java的驅(qū)動(dòng)包mysql-connector-java,需要基于Java操作MySQL即需要該驅(qū)動(dòng)包。同樣的, 要基于Java操作Oracle數(shù)據(jù)庫則需要Oracle的數(shù)據(jù)庫驅(qū)動(dòng)包ojdbc。

二、Java的數(shù)據(jù)庫編程:JDBC

JDBC,即Java Database Connectivity,java數(shù)據(jù)庫連接。是一種用于執(zhí)行SQL語句的Java API,它是 Java中的數(shù)據(jù)庫連接規(guī)范。這個(gè)API由 java.sql.*,javax.sql.* 包中的一些類和接口組成,它為Java 開發(fā)人員操作數(shù)據(jù)庫提供了一個(gè)標(biāo)準(zhǔn)的API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問。

三、JDBC工作原理

DBC 為多種關(guān)系數(shù)據(jù)庫提供了統(tǒng)一訪問方式,作為特定廠商數(shù)據(jù)庫訪問API的一種高級(jí)抽象,它主要包 含一些通用的接口類。

JDBC訪問數(shù)據(jù)庫層次結(jié)構(gòu):

四、開發(fā)環(huán)境搭建

首先在電腦服務(wù)當(dāng)中查看自己MySQL的版本,然后進(jìn)入maven倉庫

因?yàn)槲易约旱陌姹臼?.0之后的,所以我選擇5.1.47,大版本要一致

 下載jar即可,記住,jar包不能解壓縮

接下來就在idea自己在根目錄下創(chuàng)建文件夾,然后導(dǎo)入jar包

 沒有報(bào)錯(cuò)一直O(jiān)K下去就沒有啥問題,說明導(dǎo)入成功

五、MySQL中的JDBC編程

1、五步流程

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

// 加載JDBC驅(qū)動(dòng)程序:反射,這樣調(diào)用初始化com.mysql.jdbc.Driver類,即將該類加載到JVM方法
區(qū),并執(zhí)行該類的靜態(tài)方法塊、靜態(tài)屬性。
Class.forName("com.mysql.jdbc.Driver");
// 創(chuàng)建數(shù)據(jù)庫連接
Connection connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test?
user=root&password=root&useUnicode=true&characterEncoding=UTF-8");
//MySQL數(shù)據(jù)連接的URL參數(shù)格式如下:
jdbc:mysql://服務(wù)器地址:端口/數(shù)據(jù)庫名?參數(shù)名=參數(shù)值

創(chuàng)建操作命令(Statement)

Statement statement = connection.createStatement();

執(zhí)行SQL語句

ResultSet resultSet= statement.executeQuery(
                "select id, sn, name, qq_mail, classes_id from student");

處理結(jié)果集

while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String sn = resultSet.getString("sn");
            String name = resultSet.getString("name");
            int classesId = resultSet.getInt("classes_id");
            System.out.println(String.format("Student: id=%d, sn=%s, name=%s, 
classesId=%s", id, sn, name, classesId));
       }

釋放資源(關(guān)閉結(jié)果集,命令,連接)

//關(guān)閉結(jié)果集
if (resultSet != null) {
    try {
        resultSet.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}
//關(guān)閉命令
if (statement != null) {
    try {
        statement.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}
//關(guān)閉連接命令
if (connection != null) {
    try {
        connection.close();
   } catch (SQLException e) {
        e.printStackTrace();
   }
}

2、添加信息

首先創(chuàng)建一個(gè)數(shù)據(jù)庫并且創(chuàng)建一個(gè)表

 create database java122;
 create table text(id int,name varchar(5),class_id int);
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
 
 
public class TextJDBC {
    //DataSource
    //Connection
    //PrepareStatement
 
 
    public static void main(String[] args) throws SQLException{
        //1、創(chuàng)建DataSource對象
         DataSource dataSource = new MysqlDataSource();
        //設(shè)置相關(guān)內(nèi)容
        //URL User password
        //向下轉(zhuǎn)型                     訪問數(shù)據(jù)庫   協(xié)議名        ip地址 要訪問那個(gè)地址
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("180210");
        
        //2、和數(shù)據(jù)庫連接.進(jìn)行后續(xù)連接
        //connect生命周期較短
        Connection connection = dataSource.getConnection();
        
        //3、拼裝SQL語句
        int id = 1;
        String name = "曹操";
        int class_id = 10;
        //?是一個(gè)占位符,可以把一個(gè)具體的變量的值替換到?
        String sql = "insert into text values(?,?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        //1 2 3相當(dāng)與?的下標(biāo)
        statement.setInt(1,id);
        statement.setString(2,name);
        statement.setInt(3,class_id);
        System.out.println("statement:" + statement);
 
        //4、執(zhí)行SQL語句
        int ret = statement.executeUpdate();
        System.out.println("ret:" + ret);
 
        //5、關(guān)閉相關(guān)資源
        //后創(chuàng)建的先釋放,順序不能錯(cuò)
        statement.close();
        connection.close();
 
    }
}

3、查詢信息

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
 
import javax.sql.DataSource;
import javax.xml.transform.Source;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
 
public class Text1 {
 
 
    public static void main(String[] args) throws SQLException {
 
        //1,創(chuàng)建實(shí)列
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("180210");
 
        //2,數(shù)據(jù)庫連接
        Connection connection = dataSource.getConnection();
 
        //3,構(gòu)造SQL語句
 
        String sql ="select * from text";
        PreparedStatement statement = connection.prepareStatement(sql);
 
        //4,執(zhí)行SQL語句
        ResultSet resultSet = statement.executeQuery();
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int class_id = resultSet.getInt("class_id");
            System.out.println("id: " + id  + "name: " + name  + "class_id: " + class_id);
        }
 
        //5,關(guān)閉相關(guān)資源
        resultSet.close();
        statement.close();
        connection.close();
    }
}

4、刪除信息

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
 
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
 
public class Textur2 {
 
 
    public static void main(String[] args) throws SQLException {
 
 
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入要?jiǎng)h除學(xué)生的姓名:");
        String name = scanner.next();
        //1,創(chuàng)建實(shí)列
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("180210");
 
        //2,數(shù)據(jù)庫連接
        Connection connection = dataSource.getConnection();
 
        //3,構(gòu)造SQL語句
        String sql = "delete from text where name = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
 
        //4,執(zhí)行SQL
        int ret = statement.executeUpdate();
        if (ret == 1){
            System.out.println("刪除成功");
        }else {
            System.out.println("刪除失敗");
        }
 
        //5,關(guān)閉資源
        statement.close();
        connection.close();
 
 
    }
}

5、修改信息

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
 
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
 
public class Text4 {
 
 
    public static void main(String[] args) throws SQLException {
 
 
        //修改信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入學(xué)生的id:");
        int id = scanner.nextInt();
        System.out.println("請輸入修改學(xué)生姓名:");
        String name = scanner.next();
 
        //1,創(chuàng)建實(shí)列
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java122?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("180210");
 
        //2,數(shù)據(jù)庫連接
        Connection connection = dataSource.getConnection();
 
        //3,拼裝SQL
        String sql = "update text set name = ? where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,id);
        //4,執(zhí)行SQL
        int set = statement.executeUpdate();
        if (set == 1){
            System.out.println("修改成功");
        }else {
            System.out.println("修改失敗");
        }
 
        //5,關(guān)閉資源
        statement.close();
        connection.close();
    }
}

到此這篇關(guān)于MySQL五步走JDBC編程全解讀的文章就介紹到這了,更多相關(guān)MySQL JDBC編程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL死鎖問題排查與詳細(xì)分析

    MySQL死鎖問題排查與詳細(xì)分析

    數(shù)據(jù)庫管理系統(tǒng)中,死鎖是指多個(gè)事務(wù)互相等待對方釋放資源,導(dǎo)致事務(wù)僵持不前,影響系統(tǒng)穩(wěn)定性,本文詳細(xì)介紹了如何在MySQL中排查和分析死鎖問題,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • 如何設(shè)置mysql允許外部連接訪問

    如何設(shè)置mysql允許外部連接訪問

    大家好,本篇文章主要講的是如何設(shè)置mysql允許外部連接訪問,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • mysql installer community 8.0.12.0安裝圖文教程

    mysql installer community 8.0.12.0安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql installer community 8.0.12.0安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • MySQL數(shù)據(jù)庫基礎(chǔ)篇SQL窗口函數(shù)示例解析教程

    MySQL數(shù)據(jù)庫基礎(chǔ)篇SQL窗口函數(shù)示例解析教程

    這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫基礎(chǔ)篇之窗口函數(shù)示例解析教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • MySQL索引長度限制原理解析

    MySQL索引長度限制原理解析

    這篇文章主要介紹了MySQL索引長度限制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • MySQL 如果單獨(dú)獲取已知日期的年月日

    MySQL 如果單獨(dú)獲取已知日期的年月日

    本文介紹在MySQL中如何使用內(nèi)置函數(shù)提取日期和時(shí)間的各個(gè)部分,包括年、月、日、小時(shí)、分鐘、秒以及星期幾,通過示例和代碼,展示了如何使用YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()和WEEKDAY()函數(shù),并介紹了DATE_FORMAT()函數(shù)的靈活性,感興趣的朋友一起看看吧
    2025-01-01
  • Mysql分析設(shè)計(jì)表主鍵為何不用uuid

    Mysql分析設(shè)計(jì)表主鍵為何不用uuid

    在mysql中設(shè)計(jì)表的時(shí)候,mysql官方推薦不要使用uuid或者不連續(xù)不重復(fù)的雪花id(long形且唯一),而是推薦連續(xù)自增的主鍵id,官方的推薦是auto_increment,那么為什么不建議采用uuid,使用uuid究竟有什么壞處?本篇博客我們就來分析這個(gè)問題,探討一下內(nèi)部的原因
    2022-03-03
  • Mysql8.4.3LTS中離線部署的實(shí)現(xiàn)示例

    Mysql8.4.3LTS中離線部署的實(shí)現(xiàn)示例

    本文詳細(xì)介紹了在Ubuntu 24.04系統(tǒng)上離線部署MySQL 8.4.3 LTS,包括環(huán)境配置、安裝步驟等步驟,對小白有一定的幫助,感興趣的可以了解一下
    2024-11-11
  • Linux/Mac MySQL忘記密碼命令行修改密碼的方法

    Linux/Mac MySQL忘記密碼命令行修改密碼的方法

    這篇文章主要介紹了Linux/Mac MySQL忘記密碼命令行修改密碼的方法,需要的朋友可以參考下
    2017-05-05
  • mysql?count()函數(shù)不計(jì)算null和空值問題

    mysql?count()函數(shù)不計(jì)算null和空值問題

    這篇文章主要介紹了mysql?count()函數(shù)不計(jì)算null和空值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論

江安县| 历史| 义乌市| 手机| 绿春县| 武强县| 昌图县| 静宁县| 宝清县| 高碑店市| 十堰市| 南乐县| 曲周县| 桐乡市| 乡宁县| 永清县| 安宁市| 新安县| 信宜市| 筠连县| 海宁市| 手机| 全州县| 清河县| 卢氏县| 大埔区| 开封县| 循化| 铁岭县| 北流市| 交口县| 青州市| 靖远县| 沾益县| 白沙| 泰兴市| 洛阳市| 双柏县| 运城市| 克东县| 乌海市|