创建teacher和student表
create table teacher(
t_id int primary key auto_increment,
t_name varchar(100)
);
create table student(
id int primary key auto_increment,
s_name varchar(100),
t_id int,
constraint t_id_fk foreign key (t_id) references teacher(t_id)
);
获取自动生成的主键
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
String sql = "insert into teacher (t_name) values (?)";
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);//说明要返回自动生成的键
stmt.setString(1, "t_mr_wang");
int num = stmt.executeUpdate();
rs = stmt.getGeneratedKeys();//执行完语句后,在从中获得主键
int t_id = -1;
if(rs.next()){
t_id = rs.getInt(1);//获得到了自动生成的主键
}
if(num>0){
//插入一个学生信息
sql = "insert into student (s_name,t_id) values (?,?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "s_mr_wang");
stmt.setInt(2, t_id);<span style="white-space:pre"> </span>//给这个student对应的teacher的t_id传值
stmt.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtils.release(rs, stmt, conn);
}