IP地址配置HTTPS 内网IP配置HTTPS保姆教程
本文介绍了在Nginx中配置HTTPS的完整流程:1)使用OpenSSL生成自签名证书和私钥;2)解密私钥以避免重启时输入密码;3)配置Nginx支持HTTPS,包括指定证书路径、设置安全协议和加密套件等。适用于开发、测试和内网环境,但需注意自签名证书会触发浏览器警告,生产环境建议使用CA签发的正式证书。通过简单的命令和配置即可实现基本的HTTPS加密保护。

学生初学者常见的场景是:插入一条新记录后,需要立即得到其自增主键,用于后续处理(如插表操作、多表关联等)。MyBatis 提供了 useGeneratedKeys 和 selectKey 等机制,实现这一目标。
useGeneratedKeys适用于支持 JDBC getGeneratedKeys() 的数据库(如 MySQL、H2)。示例如下:
<insert id="addUser" parameterType="User"
useGeneratedKeys="true"
keyProperty="id"
keyColumn="id">
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
useGeneratedKeys="true":启用 JDBC 自动获取自增IDkeyProperty:指定赋值给 JavaBean 的属性keyColumn(可选):明确列名,推荐配置在 Oracle/PostgreSQL 等情形(博客园, CSDN, Google 群组, Stack Overflow)。✅ 实践提醒:MyBatis 插入方法返回的是影响行数,主键值会回写到参数对象里(恩玛尔维)。
@Options对于 Spring+MyBatis 初学者,用法清晰简洁:
@Mapper
public interface UserMapper {
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertUser(User user);
}
user.id 会自动更新为主键。<selectKey>兼容性更好,适合不完全支持 JDBC 获取关键列的数据库:
<insert id="addStudent" parameterType="Student">
<selectKey resultType="long" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO student(name, age) VALUES(#{name}, #{age})
</insert>
order="AFTER" 保证先插入后执行,通过语句获取主键(CSDN)。
| 方法 | 优势 | 可用数据库 |
|---|---|---|
useGeneratedKeys |
简洁、高效、自动赋值 | MySQL、H2、SQLServer、Oracle*等 |
@Options |
注解方式,集成 Spring Boot 很方便 | 同上 |
selectKey |
跨库支持、灵活,可自定义获取逻辑 | 全部 JDBC 支持的数据库 |
* 对 Oracle/PostgreSQL 成功使用时,请务必指定 keyColumn(CSDN, Stack Overflow, Baeldung, Stack Overflow)。
以下流程简图展示了 MyBatis 中 useGeneratedKeys 的机制:
INSERTgetGeneratedKeys() 获取主键插图清晰展示流程与组件交互:

以 Spring Boot + MyBatis 为例:
// 实体类
public class Car {
private Long id;
private String model;
// getters/setters
}
// Mapper 接口
@Mapper
public interface CarMapper {
@Insert("INSERT INTO car(model) VALUES(#{model})")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int save(Car car);
}
// 使用过程
Car car = new Car();
car.setModel("Tesla");
carMapper.save(car);
Long newId = car.getId(); // 新增记录的主键
如需兼容性更强,可替换为 XML + <selectKey> 方式。
useGeneratedKeys + keyProperty;keyColumn 可避免兼容性问题;这是原创且基于最新资料整合的指南,欢迎分享收藏!
@Options(Stack Overflow)希望这篇图文并茂的原创 SEO 文章,能帮助你彻底掌握“如何让 MyBatis 返回主键 ID”!如有问题,欢迎评论区探讨 😊







