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

使用IDEA對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單增刪改查操作

 更新時(shí)間:2021年01月04日 14:34:20   作者:海綿寶寶的菠蘿屋*  
這篇文章主要介紹了使用IDEA對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單增刪改查操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.1 Java中的數(shù)據(jù)存儲(chǔ)技術(shù)

在Java中,數(shù)據(jù)庫(kù)存取技術(shù)可分為如下幾類:
1、JDBC直接訪問(wèn)數(shù)據(jù)庫(kù)
2、JDO(Java Data Object)是Java對(duì)象持久化的新的規(guī)范,也是一個(gè)用于存取某種數(shù)據(jù)倉(cāng)庫(kù)中的對(duì)象的標(biāo)準(zhǔn)化API。
3、第三方O/R 比如Hibernate,Mybatis等

JDBC是java訪問(wèn)數(shù)據(jù)庫(kù)的基石,JDO、Hibernate、MyBatis,JDO,Hibernate、MyBatyis等只是更好的封裝的JDBC。
最近用idea連接Oracle數(shù)據(jù)庫(kù) 并且實(shí)現(xiàn)增刪改操作的時(shí)候,遇到的一些問(wèn)題在這里跟大家分享一下。
首先,idea連接連接數(shù)據(jù)庫(kù),都需要進(jìn)行Connnection,也就是需要jdbc(Java database connection)
在進(jìn)行連接之前,最先要做的事情就是導(dǎo)入對(duì)應(yīng)所使用的數(shù)據(jù)庫(kù)的jar包。(常見(jiàn)的數(shù)據(jù)庫(kù)有MySQL,Oracle,SQLServer等等)
舉個(gè)例子:
我要連接Oracle數(shù)據(jù)庫(kù),就到Oracle的官網(wǎng)上下載對(duì)應(yīng)的jar包,當(dāng)引入jar包下面出現(xiàn)小三角的時(shí)候,就說(shuō)明導(dǎo)包成功??!

在這里插入圖片描述

第一步成功,我們套用jdbc的代碼,基本上這個(gè)大家都能明白,咱也可以把它封裝在一個(gè)類里邊,必要的時(shí)候拿過(guò)來(lái)使用。
如下代碼所示: 注意看代碼的注釋!!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
//與數(shù)據(jù)庫(kù)建立連接
public class ConnectionTest {
  //獲取連接的三個(gè)基本信息
  private String dbURL = "jdbc:oracle:thin:@localhost:1521:orcl";
  private String dbUser = "test";
  private String dbPwd = "test";
  // 獲取數(shù)據(jù)庫(kù)連接方法, 返回Connection對(duì)象
  private Connection con = null;
  //創(chuàng)建數(shù)據(jù)庫(kù)連接
  public Connection getDBConnect() {
    try {
      // 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng) 不同的數(shù)據(jù)庫(kù)下面這個(gè)驅(qū)動(dòng)是不同的,這個(gè)千萬(wàn)要注意!!!
      Class.forName("oracle.jdbc.driver.OracleDriver");
      con = DriverManager.getConnection(dbURL, dbUser, dbPwd);
    } catch (Exception e) {
      System.out.println(e);
    }
    return con;
  }
}

然后我們寫(xiě)一個(gè)主方法測(cè)試一下:也就是程序執(zhí)行的出口,運(yùn)行至下面這句話說(shuō)明連接成功! 連接數(shù)據(jù)庫(kù)成功僅僅是第二步,接下來(lái)更重要的是進(jìn)行對(duì)數(shù)據(jù)庫(kù)的增刪改操作!!

在這里插入圖片描述

連接數(shù)據(jù)庫(kù)成功之后,就是為了下面增刪改操作服務(wù)的。注意看對(duì)數(shù)據(jù)庫(kù)進(jìn)行插入操作的方法如下:(插入操作的方法要寫(xiě)在Connection這個(gè)類里邊)

public void testInsert() {
	  PreparedStatement ps1 = null; //使用該類執(zhí)行增刪改操作不會(huì)發(fā)生sql注入現(xiàn)象!!
    //在進(jìn)行插入操作的時(shí)候 保證你的表、以及對(duì)應(yīng)的列名都存在 ?在這里表示占位符
    String sql = "insert into t_user(ID,USERNAME,PASSWORD1,EMAIL) values(?,?,?,?)";
    try {
     //1、預(yù)編譯sql語(yǔ)句 返回PreparedStatement的實(shí)例給ps1 con表示Connection的對(duì)象
      ps1 = con.prepareStatement(sql);
      //2、填充占位符=?
      ps1.setString(1, "2");
      ps1.setString(2, "ww");
      ps1.setString(3, "12345");
      ps1.setString(4, "907372669@qq.com");
      //執(zhí)行操作
      ps1.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //資源的關(guān)閉
    try {
      if (ps1 != null)
        ps1.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if (con != null)
        con.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

插入方法寫(xiě)好之后,在主函數(shù)里面調(diào)用即可實(shí)現(xiàn)插入操作,千萬(wàn)注意自己寫(xiě)的sql語(yǔ)句寫(xiě)的有沒(méi)有存在問(wèn)題。

在這里插入圖片描述

同樣往下是刪除操作的方法(ps:注意觀察關(guān)閉資源的方法,將其寫(xiě)在一個(gè)方法體里,減少代碼的重用性!!)

public void testUpdate() {
    PreparedStatement ps2 = null;
    //編寫(xiě)sql語(yǔ)句 返回PreparedStatement的實(shí)例
    String sql = "update T_USER set USERNAME = ? where ID = ? ";
    try {
      ps2 = con.prepareStatement(sql);
       //填充占位符=?
      ps2.setObject(1,"newgg");
      ps2.setObject(2,"1");
      //執(zhí)行
      ps2.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實(shí)現(xiàn)資源關(guān)閉的方法
    closeSources(ps2,con);
  }
  
  //實(shí)現(xiàn)資源關(guān)閉的方法如下:
public void closeSources(PreparedStatement ps, Connection con) {
    try {
      if (ps != null)
        ps.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if (con != null)
        con.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
}

接下來(lái)實(shí)現(xiàn)修改某一行的屬性的方法,邏輯實(shí)現(xiàn)同插入刪除一樣。

public void testUpdate() {
 //編寫(xiě)sql語(yǔ)句 返回PreparedStatement的實(shí)例
    PreparedStatement ps2 = null;
    String sql = "update T_USER set USERNAME = ? where ID = ? ";
    try {
      ps2 = con.prepareStatement(sql);
      //填充占位符=?
      ps2.setObject(1,"newgg");
      ps2.setObject(2,"1");
      //執(zhí)行
      ps2.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實(shí)現(xiàn)資源的關(guān)閉
    closeSources(ps2,con);
  }

在這里插入圖片描述

套路都是一樣,細(xì)心的人會(huì)發(fā)現(xiàn),增刪改的操作步驟都是一樣的,但唯獨(dú)SQL語(yǔ)句不一樣,進(jìn)而填充占位符的參數(shù)是不一樣的,利用Java 具有可變長(zhǎng)參數(shù)的性質(zhì),我們可以寫(xiě)出一個(gè)通用的增刪改的方法

 //實(shí)現(xiàn)增刪改的通用操作
// sql占位符中的個(gè)數(shù)與可變長(zhǎng)參數(shù)的長(zhǎng)度一致??!
  public void insert_Delete_Update(String sql, Object ...args) {
   //預(yù)編譯SQL語(yǔ)句,返回PreparedStatement的實(shí)例
    PreparedStatement ps4 = null;
    try {
      ps4 = con.prepareStatement(sql);
      //填充占位符
      for(int i=0; i<args.length; i++) {
        ps4.setObject(i+1,args[i]);
      }
      //執(zhí)行
      ps4.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實(shí)現(xiàn)資源的關(guān)閉
    closeSources(ps4,con);
  }

于是進(jìn)而實(shí)現(xiàn)代碼塊分離,SQL語(yǔ)句寫(xiě)在另一個(gè)方法里,代碼實(shí)現(xiàn)如下:

 public void test_Insert_Delete_Update() {
 
    String sql1 = "update T_USER set username = ? where ID = ? ";
    //仔細(xì)觀察這個(gè)調(diào)用的方法 username=“newQ” ID=“2”這兩個(gè)參數(shù)傳入這個(gè)方法里 
    insert_Delete_Update(sql1,"newQ","2");
  }

在主函數(shù)調(diào)用該方法,即可實(shí)現(xiàn)對(duì)表的增刪改操作!

在這里插入圖片描述

到此這篇關(guān)于使用IDEA對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單增刪改查操作的文章就介紹到這了,更多相關(guān)IDEA對(duì)Oracle數(shù)據(jù)庫(kù)增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle實(shí)現(xiàn)查詢2個(gè)日期所跨過(guò)的月份列表/日期列表的方法分析

    Oracle實(shí)現(xiàn)查詢2個(gè)日期所跨過(guò)的月份列表/日期列表的方法分析

    這篇文章主要介紹了Oracle實(shí)現(xiàn)查詢2個(gè)日期所跨過(guò)的月份列表/日期列表的方法,結(jié)合實(shí)例形式分析了Oracle日期相關(guān)查詢與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • oracle區(qū)管理和段空間管理詳細(xì)介紹

    oracle區(qū)管理和段空間管理詳細(xì)介紹

    本文將詳細(xì)介紹oracle區(qū)管理和段空間管理,需要的朋友可以參考下
    2012-11-11
  • 檢查Oracle數(shù)據(jù)庫(kù)版本的7種方法匯總

    檢查Oracle數(shù)據(jù)庫(kù)版本的7種方法匯總

    在Oracle數(shù)據(jù)庫(kù)的發(fā)展中,數(shù)據(jù)庫(kù)一直處于不斷升級(jí)狀態(tài),下面這篇文章主要給大家介紹了關(guān)于檢查Oracle數(shù)據(jù)庫(kù)版本的7種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Oracle中帶條件插入數(shù)據(jù)的使用方法示例詳解

    Oracle中帶條件插入數(shù)據(jù)的使用方法示例詳解

    在Oracle數(shù)據(jù)庫(kù)中,INSERT WHEN語(yǔ)句用于在滿足特定條件時(shí)插入數(shù)據(jù),它允許您根據(jù)條件控制插入操作是否執(zhí)行,本文給大家分享Oracle中帶條件插入數(shù)據(jù)的使用方法,感興趣的朋友一起看看吧
    2023-12-12
  • PLSQLDeveloper登錄遠(yuǎn)程連接Oracle的操作

    PLSQLDeveloper登錄遠(yuǎn)程連接Oracle的操作

    這篇文章主要介紹了PLSQLDeveloper登錄遠(yuǎn)程連接Oracle的操作方法,通過(guò)圖文并茂給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 關(guān)于Oracle中sqlldr的用法大全

    關(guān)于Oracle中sqlldr的用法大全

    這篇文章主要介紹了關(guān)于Oracle中sqlldr的用法大全,SQLLDR可以在極短的時(shí)間內(nèi)加載數(shù)量龐大的數(shù)據(jù),這是一個(gè)非常有用的工具,可用于從多種平面文件格式向Oracle數(shù)據(jù)庫(kù)中加載數(shù)據(jù),下面我們就來(lái)詳細(xì)說(shuō)明一下sqlldr的用法
    2023-07-07
  • oracle in長(zhǎng)度限制的兩個(gè)快速解決方法

    oracle in長(zhǎng)度限制的兩個(gè)快速解決方法

    這篇文章主要給大家介紹了關(guān)于oracle in長(zhǎng)度限制的兩個(gè)快速解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)

    Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)

    這篇文章主要介紹了Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Oracle查看表空間使用率以及爆滿解決方案詳解

    Oracle查看表空間使用率以及爆滿解決方案詳解

    在日常的oralce使用中最長(zhǎng)遇到的問(wèn)題就是oralce的表空間滿了,數(shù)據(jù)無(wú)法寫(xiě)入報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于Oracle查看表空間使用率以及爆滿解決的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Oracle到PostgreSQL的不停機(jī)數(shù)據(jù)庫(kù)遷移的流程步驟

    Oracle到PostgreSQL的不停機(jī)數(shù)據(jù)庫(kù)遷移的流程步驟

    這篇文章主要介紹了Oracle到PostgreSQL的不停機(jī)數(shù)據(jù)庫(kù)遷移的流程步驟,Oracle?到?PostgreSQL?的遷移并不是說(shuō)遷就能遷的,有很多不得不解決的問(wèn)題,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05

最新評(píng)論