JDBC基本使用方法

来源:https://www.cnblogs.com/chaostudy/archive/2020/05/19/12920464.html
-Advertisement-
Play Games

 JDBC基本使用方法 JDBC固定步驟: 載入驅動 連接資料庫,代表資料庫 向資料庫發送SQL的對象Statement: CRUD 編寫SQL (根據業務, 不同的SQL) 執行SQL 遍歷結果集 關閉連接 補充: statement.executeQuery(); //執行查詢操作 state ...


JDBC基本使用方法

JDBC固定步驟:

載入驅動

String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT";
String username="root";
String password="123456";
Class.forName("com.mysql.cj.jdbc.Driver");//這裡不知道為什麼載入com.mysql.jdbc.Driver會報錯,有知道的大佬請留言

連接資料庫,代表資料庫

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

向資料庫發送SQL的對象Statement: CRUD

Statement statement = connection.createStatement();

編寫SQL (根據業務, 不同的SQL)

String str1="select * from users";
String str2="insert into users values (4,'趙六','145667','werwef.@eq',current_time) ,(5,'田七','53234','fsd@df',current_time)";
String str3="delete from users where id=5";
String str4="update users set password='987654' where id=4";

執行SQL

//        int i = statement.executeUpdate(str2);
//        int i = statement.executeUpdate(str3);
//        int i = statement.executeUpdate(str4);
        ResultSet resultSet = statement.executeQuery(str1);

遍歷結果集


while (resultSet.next()){
            System.out.println("id:"+resultSet.getInt("id"));
            System.out.println("name:"+resultSet.getString("name"));
            System.out.println("password:"+resultSet.getString("password"));
            System.out.println("email:"+resultSet.getString("email"));
            System.out.println("birthday:"+resultSet.getString("birthday"));
        }

關閉連接

resultSet.close();
statement.close();
connection.close();

image-20200519233521651

image-20200519223155014

補充:

  • statement.executeQuery(); //執行查詢操作

  • statement.executeUpdate(); //執行增刪改操作

  • resultset. beforeFirst(); // 移動到最前面

  • resu1tSet. afterlast(); //移動到最後面

  • resultset.next(); //移動到下一個數據

  • resultset. previous(); //移動到前一行

  • resu1tset. absolute(row); //移動到指定行

  • statement不安全使用prepareStatement 可以防SQL註入

    以下是prepareStatement 的使用方法

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT";
    String username="root";
    String password="123456";
    //載入驅動
    Class.forName("com.mysql.cj.jdbc.Driver");
    //連接資料庫
    Connection connection = DriverManager.getConnection(url, username, password);
    //編寫SQL
    String str5="insert into users (id,name,password,email,birthday)values (?,?,?,?,?)";
    //預編譯
    PreparedStatement ps = connection.prepareStatement(str5);

    ps.setInt(1,6);				//給第一個占位符?賦值6
    ps.setString(2,"胡八");	   //給第二個占位符?賦值"胡八"
    ps.setString(3,"1223235");	//給第三個占位符?賦值”1223235“
    ps.setString(4,"ew@12");	//給第四個占位符?賦值"ew@12"
    ps.setDate(5,new Date(new java.util.Date().getTime()));
    							//給第五個占位符?賦值2020-05-19
    
    //執行
    int i = ps.executeUpdate();
    if (i>0){
        System.out.println("插入成功");
    }
	//關閉連接
    ps.close();
    connection.close();
}

image-20200519233435322


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是良許。 我們知道,在 Linux 下寫完一個腳本,通常情況下我們需要到腳本所在的目錄,才可以執行這個腳本。但是大家有沒註意到,像 、 、 這樣的命令,它們的程式是位於 目錄下,但是我們卻可以在系統的任意位置都可以執行這些程式。 它們是怎麼做到的? 那是因為這些命令對應的程式所在路徑被加到 ...
  • 最近看到vmlinux大神介紹了一款網路查看工具,感覺很好用,下麵進行簡要摘錄: iptraf-ng 可以方便查看當前伺服器網路狀況:CentOS 7.0,採用了衍生版本iptraf-ng 。 iptraf-ng -h usage: iptraf-ng [options] or: iptraf-ng ...
  • 1. 目的 簡化SSH登陸過程, 實現從機器A登陸機器B只需要運行 即可, 即不需要輸入用戶名和密碼。 2. 配置host 配置host的作用是ssh登陸機器時用hostname代替IP, 在機器很多的集群環境中hostname比IP容易記的多, 編輯 文件, 配置需要登陸的機器IP和hostnam ...
  • linux下c編程特點 typeof 取變數類型 GNU c對比ANSI c做了很多擴展,例如動態數組 第7章 Linux設備驅動中的併發控制 造成竟態的原因 多核 進程和中斷形成的多路徑(linux2.6以後,禁止了中斷嵌套) 編譯亂序 執行亂序 解決竟態的辦法 中斷屏蔽:只能屏蔽本核的 原子操作 ...
  • 1、重啟tomcat 使用命令:ps: 查詢tomcat進程號 kill:殺死tomcat進程 步驟: 1)ps -ef | grep tomcat 查詢tomcat進程號, 2)kill -9 進程號 強制殺死該進程2 3)ps -ef | grep tomcat 再次查詢進程是否已經被殺死 4) ...
  • 問題:supervisorctl restart 服務名 失敗 案例: [root@node203 ~]# supervisorctl statusetcd-server-97-203 RUNNING pid 7706, uptime 14:29:46kube-apiserver-97-203 FA ...
  • 資料庫 1.1 資料庫基礎 1.1.1 選擇 1.1.1.1 Having 子句的作用是(C )。 A.查詢結果的分組條件 B.組的篩選條件 C.限定返回的行的判斷條件 D.對結果集進行排序 1.1.1.2 最常用的一種基本數據模型是關係數據模型,它的表示採用(D) A.樹 B.網路 C.圖 D.二 ...
  • 在Oracle和SQL Server資料庫中,可以設置一些複雜的賬號密碼策略,例如在失敗登錄超過N次即可鎖定賬號,那麼在MySQL中能否也有這樣的功能呢?答案是MySQL也有類似這樣的功能,只不過在MySQL中是在其登錄失敗超過閥值後,延遲響應時間,而不是鎖定賬號,在MySQL 5.7.17 以後提... ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...