在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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.