1. 程式人生 > 資料庫 >使用IDEA對Oracle資料庫進行簡單增刪改查操作

使用IDEA對Oracle資料庫進行簡單增刪改查操作

1.1 Java中的資料儲存技術

在Java中,資料庫存取技術可分為如下幾類:
1、JDBC直接訪問資料庫
2、JDO(Java Data Object)是Java物件持久化的新的規範,也是一個用於存取某種資料倉庫中的物件的標準化API。
3、第三方O/R 比如Hibernate,Mybatis等

JDBC是java訪問資料庫的基石,JDO、Hibernate、MyBatis,JDO,Hibernate、MyBatyis等只是更好的封裝的JDBC。
最近用idea連線Oracle資料庫 並且實現增刪改操作的時候,遇到的一些問題在這裡跟大家分享一下。
首先,idea連線連線資料庫,都需要進行Connnection,也就是需要jdbc(Java database connection)

在進行連線之前,最先要做的事情就是匯入對應所使用的資料庫的jar包。(常見的資料庫有MySQL,Oracle,SQLServer等等)
舉個例子:
我要連線Oracle資料庫,就到Oracle的官網上下載對應的jar包,當引入jar包下面出現小三角的時候,就說明導包成功!!

在這裡插入圖片描述

第一步成功,我們套用jdbc的程式碼,基本上這個大家都能明白,咱也可以把它封裝在一個類裡邊,必要的時候拿過來使用。
如下程式碼所示: 注意看程式碼的註釋!!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
//與資料庫建立連線
public class ConnectionTest {
  //獲取連線的三個基本資訊
  private String dbURL = "jdbc:oracle:thin:@localhost:1521:orcl";
  private String dbUser = "test";
  private String dbPwd = "test";
  // 獲取資料庫連線方法,返回Connection物件
  private Connection con = null;
  //建立資料庫連線
  public Connection getDBConnect() {
    try {
      // 載入資料庫驅動 不同的資料庫下面這個驅動是不同的,這個千萬要注意!!!
      Class.forName("oracle.jdbc.driver.OracleDriver");
      con = DriverManager.getConnection(dbURL,dbUser,dbPwd);
    } catch (Exception e) {
      System.out.println(e);
    }
    return con;
  }
}

然後我們寫一個主方法測試一下:也就是程式執行的出口,執行至下面這句話說明連線成功! 連線資料庫成功僅僅是第二步,接下來更重要的是進行對資料庫的增刪改操作!!

在這裡插入圖片描述

連線資料庫成功之後,就是為了下面增刪改操作服務的。注意看對資料庫進行插入操作的方法如下:(插入操作的方法要寫在Connection這個類裡邊)

public void testInsert() {
	  PreparedStatement ps1 = null; //使用該類執行增刪改操作不會發生sql注入現象!!
    //在進行插入操作的時候 保證你的表、以及對應的列名都存在 ?在這裡表示佔位符
    String sql = "insert into t_user(ID,USERNAME,PASSWORD1,EMAIL) values(?,?,?)";
    try {
     //1、預編譯sql語句 返回PreparedStatement的例項給ps1 con表示Connection的物件
      ps1 = con.prepareStatement(sql);
      //2、填充佔位符=?
      ps1.setString(1,"2");
      ps1.setString(2,"ww");
      ps1.setString(3,"12345");
      ps1.setString(4,"[email protected]");
      //執行操作
      ps1.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //資源的關閉
    try {
      if (ps1 != null)
        ps1.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if (con != null)
        con.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

插入方法寫好之後,在主函式裡面呼叫即可實現插入操作,千萬注意自己寫的sql語句寫的有沒有存在問題。

在這裡插入圖片描述

同樣往下是刪除操作的方法(ps:注意觀察關閉資源的方法,將其寫在一個方法體裡,減少程式碼的重用性!!)

public void testUpdate() {
    PreparedStatement ps2 = null;
    //編寫sql語句 返回PreparedStatement的例項
    String sql = "update T_USER set USERNAME = ? where ID = ? ";
    try {
      ps2 = con.prepareStatement(sql);
       //填充佔位符=?
      ps2.setObject(1,"newgg");
      ps2.setObject(2,"1");
      //執行
      ps2.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實現資源關閉的方法
    closeSources(ps2,con);
  }
  
  //實現資源關閉的方法如下:
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();
    }
}

接下來實現修改某一行的屬性的方法,邏輯實現同插入刪除一樣。

public void testUpdate() {
 //編寫sql語句 返回PreparedStatement的例項
    PreparedStatement ps2 = null;
    String sql = "update T_USER set USERNAME = ? where ID = ? ";
    try {
      ps2 = con.prepareStatement(sql);
      //填充佔位符=?
      ps2.setObject(1,"1");
      //執行
      ps2.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實現資源的關閉
    closeSources(ps2,con);
  }

在這裡插入圖片描述

套路都是一樣,細心的人會發現,增刪改的操作步驟都是一樣的,但唯獨SQL語句不一樣,進而填充佔位符的引數是不一樣的,利用Java 具有可變長引數的性質,我們可以寫出一個通用的增刪改的方法

 //實現增刪改的通用操作
// sql佔位符中的個數與可變長引數的長度一致!!
  public void insert_Delete_Update(String sql,Object ...args) {
   //預編譯SQL語句,返回PreparedStatement的例項
    PreparedStatement ps4 = null;
    try {
      ps4 = con.prepareStatement(sql);
      //填充佔位符
      for(int i=0; i<args.length; i++) {
        ps4.setObject(i+1,args[i]);
      }
      //執行
      ps4.execute();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    //實現資源的關閉
    closeSources(ps4,con);
  }

於是進而實現程式碼塊分離,SQL語句寫在另一個方法裡,程式碼實現如下:

 public void test_Insert_Delete_Update() {
 
    String sql1 = "update T_USER set username = ? where ID = ? ";
    //仔細觀察這個呼叫的方法 username=“newQ” ID=“2”這兩個引數傳入這個方法裡 
    insert_Delete_Update(sql1,"newQ","2");
  }

在主函式呼叫該方法,即可實現對錶的增刪改操作!

在這裡插入圖片描述

到此這篇關於使用IDEA對Oracle資料庫進行簡單增刪改查操作的文章就介紹到這了,更多相關IDEA對Oracle資料庫增刪改查內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!