做免费外贸网站册域名,WordPress开发微信支付,网站建设报什么专业,注册百度账号免费哈喽#xff0c;大家好#xff0c;我是木头左#xff01; 1. save方法
Mybatis的save方法用于插入一条新的记录。当数据库中不存在相同的记录时#xff0c;会执行插入操作#xff1b;如果已经存在相同的记录#xff0c;则会抛出异常。
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 idinsertUser parameterTypecom.example.UserINSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})
/insert5.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 idinsertUser parameterTypecom.example.UserINSERT INTO user (id, name, age) VALUES (#{id,jdbcTypeINTEGER}, #{name}, #{age}) ON CONFLICT DO NOTHING;
/insert通过以上介绍可以看到Mybatis save、saveOrUpdate和update方法在不同主键策略下的使用方法。在实际开发中需要根据业务需求选择合适的方法来执行相应的操作并根据主键策略来避免重复数据的问题。同时也可以通过设置事务管理来确保数据的一致性和完整性从而提高系统的可靠性和稳定性。 我是木头左感谢各位童鞋的点赞、收藏我们下期更精彩