如何在 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)
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP