如何在 JDBC 中使用 PreparedStatement 在表中儲存十進位制值?


要將記錄插入包含十進位制值的表中,使用 PreparedStatement 需要:

  • **註冊驅動程式** — 使用 **DriverManager** 類的 **registerDriver()** 方法註冊驅動程式類。將驅動程式類名作為引數傳遞給它。
  • **建立連線** — 使用 **DriverManager** 類的 **getConnection()** 方法連線到資料庫。將 URL(字串)、使用者名稱(字串)、密碼(字串)作為引數傳遞給它。
  • **建立語句** — 使用 Connection 介面的 prepareStatement() 方法建立一個 **PreparedStatement** 物件。將帶有佔位符的 INSERT 查詢以字串格式作為引數傳遞給此方法。
PreparedStatement pstmt = con.prepareStatement("INSERT INTO customers VALUES (?, ?, ?, ?, ?)");

使用 setXXX() 方法為繫結變數設定值。可以使用 setDouble() 方法將值設定為代表包含十進位制值的列的繫結變數。

pstmt.setInt(1,1);
pstmt.setString(2, "Amit");
pstmt.setInt(3, 25);
pstmt.setDouble(4, 80.5);
pstmt.setString(5,"Hyderabad");
pstmt.executeUpdate();
  • **執行查詢** — 使用 Statement 介面的 execute() 方法執行 CREATE 查詢。
pstmt.execute();

示例

讓我們使用下面的 CREATE 語句在 MySQL 資料庫中建立一個 **customers** 表:

CREATE TABLE Students(
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   PERCENTAGE DECIMAL (18, 2),
   ADDRESS VARCHAR (25),
   PRIMARY KEY (ID)
);

下面的 JDBC 程式使用 PreparedStatement 將 3 條記錄插入 customers 表中。在這裡,我們使用 setDouble() 方法為代表包含十進位制值的列的佔位符設定值:

示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertingDecimalValue {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql:///mydatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      PreparedStatement pstmt = con.prepareStatement("INSERT INTO STUDENTS VALUES (?, ?, ?, ?, ?)");
      pstmt.setInt(1,1);
      pstmt.setString(2, "Amit");
      pstmt.setInt(3, 25);
      pstmt.setDouble(4, 80.5);
      pstmt.setString(5,"Hyderabad");
      pstmt.executeUpdate();
      pstmt.setInt(1,2);
      pstmt.setString(2, "Kalyan");
      pstmt.setInt(3, 27);
      pstmt.setDouble(4, 83.4);
      pstmt.setString(5,"Delhi");
      pstmt.executeUpdate();
      pstmt.setInt(1,3);
      pstmt.setString(2, "Renuka");
      pstmt.setInt(3, 30);
      pstmt.setDouble(4, 95.6);
      pstmt.setString(5,"Hyderabad");
      pstmt.executeUpdate();
      System.out.println("Records inserted ....");
   }
}

輸出

Connection established......
Records inserted .......

您可以使用 SELECT 語句驗證 Students 表的內容,如下所示:

mysql> select * from Students;
+----+--------+-----+--------+-----------+
| ID | NAME   | AGE | SALARY | ADDRESS   |
+----+--------+-----+--------+-----------+
| 1  | Amit   | 25  | 80.50  | Hyderabad |
| 2  | Kalyan | 27  | 83.40  | Dlhi      |
| 3  | Renuka | 30  | 95.60  | Hyderabad |
+----+--------+-----+--------+-----------+
3 rows in set (0.00 sec)

更新於:2019年7月30日

1K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.