JDBC for MySQL - Herong's Tutorial Examples - v3.13, by Herong Yang
Creating Tables with AUTO_INCREMENT Columns
This section describes how to create a table with an AUTO_INCREMENT column.
Different database servers have different ways to support columns with automatically incremented values. MySQL uses the key word AUTO_INCREMENT to specify an auto-incrementing column.
In order to try AUTO_INCREMENT columns and provide a test table for testing DML (Data Manipulation Statements), I wrote the following program to create a table called "Profile" with the primary key column defined as an AUTO_INCREMENT column:
/* MySqlAutoIncrement.java
* Copyright (c) HerongYang.com. All Rights Reserved.
*/
import java.sql.*;
import javax.sql.*;
public class MySqlAutoIncrement {
public static void main(String [] args) {
Connection con = null;
try {
// Setting up the DataSource object - newer version
com.mysql.cj.jdbc.MysqlDataSource ds
= new com.mysql.cj.jdbc.MysqlDataSource();
// Setting up the DataSource object - older version
// com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds
// = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
ds.setServerName("localhost");
ds.setPortNumber(3306);
ds.setDatabaseName("HerongDB");
ds.setUser("Herong");
ds.setPassword("TopSecret");
ds.setServerTimezone(java.util.TimeZone.getDefault().getID());
// Getting a connection object
con = ds.getConnection();
// Creating a database table
Statement sta = con.createStatement();
int count = sta.executeUpdate(
"CREATE TABLE Profile ("
+ " ID INTEGER PRIMARY KEY AUTO_INCREMENT,"
+ " FirstName VARCHAR(20) NOT NULL,"
+ " LastName VARCHAR(20),"
+ " Point REAL DEFAULT 0.0,"
+ " BirthDate DATE DEFAULT '2000-12-31',"
+ " ModTime TIMESTAMP DEFAULT '2026-12-31 23:59:59.999')");
System.out.println("Table created.");
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
}
When you run this program, table Profile will be created. But you run it again, you will get an exception:
herong> javac -cp .:mysql-connector-java.jar MySqlAutoIncrement.java herong> java -cp .:mysql-connector-java.jar MySqlAutoIncrement Table created. herong> java -cp .:mysql-connector-java.jar MySqlAutoIncrement Exception: Table 'profile' already exists
Table of Contents
JDBC (Java Database Connectivity) Introduction
►MySQL JDBC Driver (MySQL Connector/J)
MySQL Connector/J - Download and Installation
Loading JDBC Driver for MySQL Server
Specifying Timezone During Connection
Creating Connections with DataSource Class
Getting Driver and Server Information
►Creating Tables with AUTO_INCREMENT Columns
MySQL - Reference Implementation of JdbcRowSet
MySQL - JBDC CallableStatement
MySQL CLOB (Character Large Object) - TEXT
MySQL BLOB (Binary Large Object) - BLOB