当前位置: 首页 > news >正文

网站建设部岗位职责做免费外贸网站册域名

网站建设部岗位职责,做免费外贸网站册域名,品牌推广和品牌营销,利于优化的网站模板哈喽,大家好,我是木头左! 1. save方法 Mybatis的save方法用于插入一条新的记录。当数据库中不存在相同的记录时,会执行插入操作;如果已经存在相同的记录,则会抛出异常。 int result sqlSession.insert(&…

哈喽,大家好,我是木头左!

1. save方法

Mybatis的save方法用于插入一条新的记录。当数据库中不存在相同的记录时,会执行插入操作;如果已经存在相同的记录,则会抛出异常。

int result = sqlSession.insert("userMapper.save", user);

2. saveOrUpdate方法

Mybatis的saveOrUpdate方法用于插入或更新一条记录。当数据库中不存在相同的记录时,会执行插入操作;如果已经存在相同的记录,则会执行更新操作。

int result = sqlSession.insert("userMapper.saveOrUpdate", user);

3. update方法

Mybatis的update方法用于更新一条记录。当数据库中存在相同的记录时,会执行更新操作;如果不存在相同的记录,则不会执行任何操作。

int result = sqlSession.update("userMapper.update", user);

4. 区别总结

  • save方法只适用于插入操作,如果数据库中已经存在相同的记录,会抛出异常。
  • saveOrUpdate方法既可以用于插入操作,也可以用于更新操作,当数据库中不存在相同的记录时,会执行插入操作;如果已经存在相同的记录,则会执行更新操作。
  • update方法只适用于更新操作,如果数据库中不存在相同的记录,则不会执行任何操作。

通过以上介绍,可以看到save、saveOrUpdate和update方法在Mybatis中的不同作用。在实际开发中,需要根据业务需求选择合适的方法来执行相应的操作。同时,也可以通过设置主键策略来避免重复数据的问题,从而更好地使用Mybatis的这些方法。

5. 主键策略设置

5.1 自增主键

当使用自增主键时,可以保证每条记录的主键都是唯一的,因此可以直接使用save或saveOrUpdate方法进行插入或更新操作。例如:

<insert id="insertUser" parameterType="com.example.User">INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})
</insert>

5.2 非自增主键

当使用非自增主键时,需要确保数据库中没有重复的主键值,否则会抛出异常。此时,可以使用以下两种方法来处理:

  • 先查询再判断:在执行插入或更新操作之前,先查询数据库中是否存在相同的主键值。如果存在,则不执行操作;如果不存在,则执行插入或更新操作。这种方法的缺点是可能会影响性能,因为需要多次查询数据库。例如:
User user = getUserById(id);
if (user == null) {user = new User();user.setId(id);user.setName(name);user.setAge(age);sqlSession.insert("userMapper.insert", user);
} else {sqlSession.update("userMapper.update", user);
}
  • 使用主键策略:在Mybatis的配置文件中设置主键策略为“NOT_NULL”,这样当数据库中不存在相同的主键值时,会自动生成一个新的主键值并执行插入或更新操作;如果已经存在相同的主键值,则会抛出异常。这种方法的优点是简单方便,但缺点是无法自定义主键生成逻辑。例如:
<insert id="insertUser" parameterType="com.example.User">INSERT INTO user (id, name, age) VALUES (#{id,jdbcType=INTEGER}, #{name}, #{age}) ON CONFLICT DO NOTHING;
</insert>

通过以上介绍,可以看到Mybatis save、saveOrUpdate和update方法在不同主键策略下的使用方法。在实际开发中,需要根据业务需求选择合适的方法来执行相应的操作,并根据主键策略来避免重复数据的问题。同时,也可以通过设置事务管理来确保数据的一致性和完整性,从而提高系统的可靠性和稳定性。

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

http://www.yayakq.cn/news/655904/

相关文章:

  • 包头市住房与城乡建设部网站南阳河南网站建设价格
  • 和小孩做的网站企业解决方案展示平台
  • 怎么查看什么公司做的网站吗电话百度
  • 课程网站建设规划方案建立个人网页需要多少钱
  • 瑞安哪里有做百度的网站河南专业网站建设创新中心
  • 北京模板网站制作西安市建设工程信息网诚信信息平台诚信承诺书在哪儿下载
  • 深圳北站设计方案莱芜都市网交友征婚
  • 企业网站推广技术国内响应式网站
  • 厦门网站建设厦门三维免费网站
  • 网站建设制作包括哪些方面seo教程论坛
  • 深圳网站建设网站推广的方法寻找常州微信网站建设
  • 南阳做做网站运营一个app需要多少钱?
  • 沈阳网站建设多少钱个人如何做网站
  • 成都网站建设推广详中文版wordpress
  • 防城港网站制作2022年国内重大新闻
  • 网站开发的四个高级阶段包括陕西省建设监理协会官网站
  • 椒江做国际网站的公司推广赚佣金
  • 商业网站网址北京市网站开发
  • 装修公司谁做网站wordpress搭建app
  • 网站推广软文案例mi2设计公司网站
  • 阿里服务器怎么做网站服务器wordpress 还原主题
  • 网站首页风格对于网站链接优化有哪些建议
  • 做的比较好的网站推荐网站开发法律可行性
  • 微网站建设 上海网站建设做微营销
  • 律师网站建设怎么样企业解决方案参考网站
  • 网站建设续约合同wordpress搬家后页面和分类打不开
  • 装饰公司做网站怎么收费传奇网站架设方法
  • 网站图片怎么做优化3有免费建网站
  • 做封面字体下载好的网站必应收录提交入口
  • 集团网站cms官网seo哪家公司好