永发信息网

oracle +mybatis 批量删除 会不会内存溢出

答案:2  悬赏:0  手机版
解决时间 2021-02-23 20:15
  • 提问者网友:佞臣
  • 2021-02-23 13:38
oracle +mybatis 批量删除 会不会内存溢出
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-02-23 14:24
最近需要用到Mybatis批量新增Oracle数据库,刚开始在网上找到的方法是都是更新MySQL的,试了一下发现不适合Oracle,后来发现正确的oracle批量新增的sql是:

insert into ATTRACTIONS (
ID, NAME, LONGITUDE, LATITUDE, UPDATe_TIME
)

(select
#{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, #{item.longitude,jdbcType=DECIMAL}, #{item.updateTime,jdbcType=TIMESTAMP}
from dual)



需要重点注意的是sql中没有values,和标签中的(selece ..... from dual),MySql中的sql是这样的:
新增:


insert into ATTRACTIONS (
ID, NAME, LONGITUDE, LATITUDE, UPDATe_TIME
)

#{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, #{item.longitude,jdbcType=DECIMAL}, #{item.updateTime,jdbcType=TIMESTAMP}


oracle更新不能按普通的方式,需要这样:

begin

update ATTRACTIONS


id = #{item.id},


HEAD = #{item.head},


where id = #{item.id}

;end;


删除就与MySql一样了如下:


delete from ATTRACTIONS


id=#{item.id}


全部回答
  • 1楼网友:青尢
  • 2021-02-23 15:44
1、定义 mybatis是一个支持普通sql查询,存储过程和高级映射的优秀持久层框架。 2、使用原因 mybatis消除了几乎所有的jdbc代码和参数的手工设置以及对结果集的检索封装。mybatis可以使用简单的xml或注解用于配置和原始映射,将接口和java的pojo(plain old java objects,普通的java对象)映射成数据库中的记录。 3、总体流程 (1)加载配置并初始化 触发条件:加载配置文件 处理过程:将sql的配置信息加载成为一个个mappedstatement对象(包括了传入参数映射配置、执行的sql语句、结果映射配置),存储在内存中。 (2)接收调用请求 触发条件:调用mybatis提供的api 传入参数:为sql的id和传入参数对象 处理过程:将请求传递给下层的请求处理层进行处理。 (3)处理操作请求 触发条件:api接口层传递请求过来 传入参数:为sql的id和传入参数对象 处理过程: (a)根据sql的id查找对应的mappedstatement对象。 (b)根据传入参数对象解析mappedstatement对象,得到最终要执行的sql和执行传入参数。 (c)获取数据库连接,根据得到的最终sql语句和执行传入参数到数据库执行,并得到执行结果。 (d)根据mappedstatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。 (e)释放连接资源。 (4)返回处理结果将最终的处理结果返回。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯