前提是这个表的id设置为了自增长,在Mysql创建表的时候,AUTO_INCREMENT就表示自增长
CREATE TABLE user (
id int(11) AUTO_INCREMENT,
name varchar(30) ,
password varchar(30),
PRIMARY KEY (id)
) ;
insert into user values(null,'dashen','thisispassword');
package test;
import java.sql.*;
public class add
{
public static void main(String[] args) {
//先导入jar包mysql-connector-java-5.1.39-bin.jar
//初始化驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String sql="INSERT INTO user VALUES (null,?,?)";
//使用try-with-resource的方式自动关闭连接
try (
//建立数据库链接
Connection c= DriverManager.getConnection("jdbc:mysql://localhost:3306/how2java?characterEncoding=utf-8",
"root","123456");
//创建语句
PreparedStatement ps=c.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
){
ps.setString(1,"ee");
ps.setString(2,"ff");
ps.execute();
// 在执行完插入语句后,MySQL会为新插入的数据分配一个自增长id
// JDBC通过getGeneratedKeys获取该id
ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
int id = rs.getInt(1);
System.out.println(id);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}