如何使用JDBC将数据插入具有自动递增列的表中?

在将数据插入具有自动递增列的表中时,只需保留该特定列,并使用INSERT语句的以下语法指定其余列即可插入剩余值-

INSERT into table_name (column_name1, column_name2....) values(value1, value2....)

示例

让我们使用CREATE语句在MySQL数据库中创建一个名称为sales的表,其中一列自动递增,如下所示-

CREATE TABLE Sales(

   ID INT PRIMARY KEY AUTO_INCREMENT,

   ProductName VARCHAR (20),

   CustomerName VARCHAR (20),

   DispatchDate date,

   DeliveryTime time,

   Price INT,

   Location VARCHAR(20)

);

以下JDBC程序与数据库建立连接,并将5条记录插入到sales表中-

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.sql.Time;

public class InsertingData_AutoIncrement {

   public static void main(String args[]) throws SQLException {

      //注册驱动程序

      DriverManager.registerDriver(new com.mysql.jdbc.Driver());

      //获得连接

      String mysqlUrl = "jdbc:mysql://localhost/sample_database";

      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

      System.out.println("Connection established......");

      //查询以将值插入销售表

      String insertQuery = "INSERT INTO Sales (ProductName, CustomerName, DispatchDate, DeliveryTime, Price, Location) VALUES (?, ?, ?, ?, ?, ?)";

      //创建一个PreparedStatement对象

      PreparedStatement pstmt = con.prepareStatement(insertQuery);

      pstmt.setString(1, "Key-Board");

      pstmt.setString(2, "Raja");

      pstmt.setDate(3, new Date(1567315800000L));

      pstmt.setTime(4, new Time(1567315800000L));

      pstmt.setInt(5, 7000);

      pstmt.setString(6, "Hyderabad");

      pstmt.execute();

      pstmt.setString(1, "Earphones");

      pstmt.setString(2, "Roja");

      pstmt.setDate(3, new Date(1556688600000L));

      pstmt.setTime(4, new Time(1556688600000L));

      pstmt.setInt(5, 2000);

      pstmt.setString(6, "Vishakhapatnam");

      pstmt.execute();

      pstmt.setString(1, "Mouse");

      pstmt.setString(2, "Puja");

      pstmt.setDate(3, new Date(1551418199000L));

      pstmt.setTime(4, new Time(1551418199000L));

      pstmt.setInt(5, 3000);

      pstmt.setString(6, "Vijayawada");

      pstmt.execute();

      pstmt.setString(1, "Mobile");

      pstmt.setString(2, "Vanaja");

      pstmt.setDate(3, new Date(1551415252000L));

      pstmt.setTime(4, new Time(1551415252000L));

      pstmt.setInt(5, 9000);

      pstmt.setString(6, "Chennai");

      pstmt.execute();

      pstmt.setString(1, "Headset");

      pstmt.setString(2, "Jalaja");

      pstmt.setDate(3, new Date(1554529139000L));

      pstmt.setTime(4, new Time(1554529139000L));

      pstmt.setInt(5, 6000);

      pstmt.setString(6, "Goa");

      pstmt.execute();

      System.out.println("Records inserted......");

   }

}

输出结果

Connection established......

Records inserted......

验证

如果您使用SELECT语句验证Sales表的内容,则可以看到插入的记录为-

mysql> select * from sales;

+----+-------------+--------------+--------------+--------------+-------+----------------+

| ID | ProductName | CustomerName | DispatchDate | DeliveryTime | Price | Location       |

+----+-------------+--------------+--------------+--------------+-------+----------------+

| 1  | Key-Board   | Raja         | 2019-09-01    | 11:00:00    | 7000   | Hyderabad     |

| 2  | Earphones   | Roja         | 2019-05-01    | 11:00:00    | 2000   | Vishakhapatnam|

| 3  | Mouse       | Puja         | 2019-03-01    | 10:59:59    | 3000   | Vijayawada    |

| 4  | Mobile      | Vanaja       | 2019-03-01    | 10:10:52    | 9000   | Chennai       |

| 5  | Headset     | Jalaja       | 2019-04-06    | 11:08:59    | 6000   | Goa           |

+----+-------------+--------------+--------------+--------------+-------+----------------+

5 rows in set (0.00 sec)

以上是 如何使用JDBC将数据插入具有自动递增列的表中? 的全部内容, 来源链接: utcz.com/z/327015.html

回到顶部