0

我是 java/scala 的初学者,我尝试对 Oracle 数据库执行一些查询。我的 SELECT 运行完美,但是当我尝试简单的删除时,什么也没有发生,我不得不在我的 intellij 终端中中止执行。

这是我的代码:

import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet, SQLException, Statement}


object ScalaJdbcConnectSelect extends App {

    // jdbc driver name and database URL
    val JDBC_DRIVER = "oracle.jdbc.OracleDriver";
    val DB_URL      = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=XXX)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXX)))";

    // database credentials
    val USER = "sys as sysdba";
    val PASS = "XXX";

    var conn: Connection = _;
    var stmt: Statement = _;


    def insertQuery(query : String): Unit = {
      try {
        Class.forName(JDBC_DRIVER);
        conn = DriverManager.getConnection(DB_URL, USER, PASS);
        stmt = conn.createStatement;

        // create the statement, and run the select query
        val statement = conn.createStatement();
        statement.executeUpdate(query);
        conn.commit();

        // cleanup
        stmt.close();
        conn.close();
      } catch {
        case e: Throwable => e.printStackTrace;
      } finally {
        conn.close();
      }
    }

    def executeQuery(query : String): Unit = {
      try {
        Class.forName(JDBC_DRIVER);
        conn = DriverManager.getConnection(DB_URL, USER, PASS);

        stmt = conn.createStatement;
        val rs: ResultSet = stmt.executeQuery(query);
        /*while (rs.next()) {
          println(rs.getString(1));
        }*/

        // cleanup
        stmt.close();
        conn.close();
      } catch {
        case e: Throwable => e.printStackTrace;
      } finally {
        conn.close();
      }
    }

  val sql = "DELETE FROM APPIVB.TDEMANDESOUSCRIPTION WHERE ID in ('4001111001')";
  //val sql = "SELECT * FROM APPIVB.TDEMANDESOUSCRIPTION WHERE ID in ('4001111001')";

  executeQuery(sql);
  println("Record deleted successfully");
}

你知道我的问题吗?谢谢

4

1 回答 1

4

对于删除查询,您将不得不使用 -

stmt.executeUpdate(query);

在此处输入图像描述

https://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html

于 2020-02-12T16:42:43.070 回答