赞
踩
Mybatis - 常用 SQL 语句设计思路及具体实现 - 数据存在则更新,不存在则插入、批量更新、批量插入、连表查询 + - 字段加减法
mybatis有没有没有就插入,有的话就修改的sql
MyBatis 中可以使用 和 标签来分别定义插入和更新操作。但是,MyBatis 并没有直接提供“有则修改,无则插入”的操作。你可以通过编写两个操作并在业务逻辑层面处理这个需求。
一种方式是先执行查询操作,看是否存在该记录,如果不存在则执行插入,如果存在则执行更新。但是,这样做效率不高,因为需要两次数据库操作。
另一种方式是使用数据库的特定语法,例如 MySQL 的 INSERT … ON DUPLICATE KEY UPDATE 语法,这是一条原子操作,可以在存在重复键时进行更新。
MyBatis 中使用该语法的 Mapper XML 配置可能如下所示:
<insert id="insertOrUpdate" parameterType="YourModelClass">
INSERT INTO your_table (column1, column2, ...)
VALUES (#{value1}, #{value2}, ...)
ON DUPLICATE KEY UPDATE
column1 = #{value1}, column2 = #{value2}, ...
</insert>
这里的 your_table 是你要操作的表名,column1, column2, … 是表中的列名,#{value1}, #{value2}, … 是 MyBatis 参数占位符。
请确保表中有唯一索引或主键,这样 ON DUPLICATE KEY UPDATE 子句才会生效。如果是复合主键或者唯一索引不是全部字段,你需要在 ON DUPLICATE KEY UPDATE 子句中只引用相关字段。
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。