CRUD扩展
插入操作
insert 插入
@Test
public void testInsert() {
User user = new User();
user.setName("name");
user.setAge(24);
user.setEmail("[email protected]");
int result = userMapper.insert(user);
System.out.println(result);
System.out.println(user);
}
数据库插入id的默认值为:全局唯一id
主键生成策略
Twitter的snowflake算法
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0,可以说是全球唯一。具体实现的代码可以参看https://juejin.cn/post/6844903631137800200。
更新操作
// 测试更新
@Test
public void testUpdate() {
User user = new User();
user.setAge(28);
user.setId(1L);
int result = userMapper.updateById(user);
System.out.println(result);
System.out.println(user);
}
所有的sql都是自动帮助你动态配置的
自动填充
创建时间,修改时间!这些操作一遍都是自动化完成的,我们不希望手动更新!
阿里巴巴开发手册:所有的数据库表:gmt_create,gmt_modified几乎所有的表都要配置上!而且需要自动化。
方式一:数据库级别
添加create_time
、update_time
字段