在Java中使用PreparedStatement插入MySQL表記錄?


要在Java中使用PreparedStatement在表中插入記錄,需要使用以下語法插入記錄。語法如下:

String anyVariableName= "INSERT INTO yourTableName(yourColumnName1, yourColumnName2, yourColumnName3,.........N)" +
"VALUES (?, ?, ?,..............N)";

現在使用PreparedStatement物件為所有列設定值。語法如下:

PreparedstatementObject = con.prepareStatement(query);
PreparedstatementObject .setXXX(1, yourValue);
PreparedstatementObject .setXXX(2, yourValue);
PreparedstatementObject .setXXX(3, yourValue);
.
.
.
N

以上prepared statement將解決您的問題。現在首先在MySQL中建立一個表。建立表的查詢如下:

mysql> create table CourseDemo
-> (
-> CourseId int,
-> StudentName varchar(20),
-> CourseName varchar(30)
-> );
Query OK, 0 rows affected (1.86 sec)

上表位於示例資料庫中。以下是使用PreparedStatement在表中插入記錄的Java程式碼:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Scanner;
public class InsertRecordInPreparedStatement {
   static int cid;
   static String studentName;
   static String courseName;
   public static void main(String[] args) {
      String JdbcURL = "jdbc:mysql://:3306/sample?useSSL=false";
      String Username = "root";
      String password = "123456";
      Connection con = null;
      Scanner keyboardInput=new Scanner(System.in);
      PreparedStatement pstmt = null;
      String query = "INSERT INTO CourseDemo(CourseId, StudentName, CourseName)" + "VALUES (?, ?, ?)";
      try {
         con = DriverManager.getConnection(JdbcURL, Username, password);
         input(keyboardInput);
         pstmt = con.prepareStatement(query);
         pstmt.setInt(1, cid);
         pstmt.setString(2, studentName);
         pstmt.setString(3, courseName);
         int status = pstmt.executeUpdate();
         if(status > 0) {
            System.out.println("Record is inserted successfully !!!");
         }
      } catch(Exception e){
         e.printStackTrace();
      }
   }
   public static void input(Scanner keyboardInput) {
      System.out.println("Enter the course id:");
      cid = keyboardInput.nextInt();
      System.out.println("Enter the Student Name:");
      studentName = keyboardInput.next();
      System.out.println("Enter the Course Name:");
      courseName = keyboardInput.next();
   }
}

Java程式碼快照如下:

輸出如下:

Enter the course id:
101
Enter the Student Name:
John
Enter the Course Name:
Java
Record is inserted successfully !!!

示例輸出快照如下:

現在檢查記錄是否已插入表中,因此只需開啟MySQL。使用資料庫示例和以下查詢,使用select語句顯示錶中的記錄:

mysql> select *from CourseDemo;

輸出如下:

+----------+-------------+------------+
| CourseId | StudentName | CourseName |
+----------+-------------+------------+
| 101      | John        | Java       |
+----------+-------------+------------+
1 row in set (0.00 sec)

表輸出快照如下:

更新於:2020年6月30日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告