幽兰生空谷
--绝世独自开

MyBatis-Plus快速入门(二)-CRUD扩展(插入和更新)

CRUD扩展

插入操作 

Insert 插入 

//测试插入
@Test
public void testInsert() {
    User user = new User();
    user.setName("itheibai");
    user.setAge(2);
    user.setEmail("123456789@qq.com");
    int result = userMapper.insert(user); // 帮我们自动生成id
    System.out.println(result); // 受影响的行数
    System.out.println(user); // 发现,id会自动回填
}

数据库插入的id的默认值为:全局的唯一id 

主键生成策略

默认 ID_WORKER 全局唯一id

分布式系统唯一id生成:https://www.cnblogs.com/haoxinyue/p/5208136.html

雪花算法:

snowflflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。可以保证几乎全球唯 一!

主键自增

我们需要配置主键自增:

1、实体类字段上

@TableId(type = IdType.AUTO)

2、数据库字段一定要是自增!

3、再次测试插入即可! 

其余的源码解释 

public enum IdType {
    AUTO(0), // 数据库id自增
    NONE(1), // 未设置主键
    INPUT(2), // 手动输入
    ASSIGN_ID(3), // 分配默认的全局唯一id
    ASSIGN_UUID(4); // 分配全局唯一id uuid
}    

更新操作 

//测试更新
@Test
public void testUpdate() {
    User user = new User();
    // 通过条件自动拼接动态sql
    user.setId(5L);
    user.setName("itheibai");
    user.setAge(18);
    // 注意:updateById 参数是一个 对象!
    int i = userMapper.updateById(user);
    System.out.println(i);
}

所有的sql都是自动帮你动态配置的! 

赞(2) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MyBatis-Plus快速入门(二)-CRUD扩展(插入和更新)》
文章链接:https://www.itheibai.com/archives/799
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册