mybatis 官网教程

http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html

出现

Could not set parameters for mapping: ParameterMapping{property='ROOM_ID', mode=IN, javaType=class java.lang.Integer, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}

原因在于输入参数非基本类型都要进行映射

解决办法:http://makemyownlife.iteye.com/blog/1610021

在oracle中怎么实现判断有数据则update,没数据则insert?

使用merge into

http://blog.csdn.net/ghgzczxcvxv/article/details/51518509

http://www.cnblogs.com/dongsheng/p/4384754.html

MERGE INTO DORMTEST T1
USING (SELECT 'mmm' as Name,10003 as ID, 109 AS ROOM_ID, 1 AS BED_ID, 1 AS BUILDING_ID from dual) T2
ON ( T1.ID=T2.ID)
WHEN MATCHED THEN
UPDATE SET T1.BED_ID = T2.BED_ID
WHEN NOT MATCHED THEN
INSERT (ID,NAME,ROOM_ID,BED_ID,BUILDING_ID) VALUES(T2.ID,T2.NAME,T2.ROOM_ID,T2.BED_ID,T2.BUILDING_ID);

在mysql中使用on duplicate update

http://www.jquerycn.cn/a_24239

什么是dual?

https://zhidao.baidu.com/question/81214206.html

如何在mybatis中使用merge into

https://stackoverflow.com/questions/19593785/how-can-i-use-oracle-merge-statement-using-mybatis

<update id="setScheme" parameterType="com.xmair.pojo.SchemeUploaded">
MERGE INTO DORMTEST T1
USING dual
ON ( T1.ID=#{ID,jdbcType=NUMERIC})
WHEN MATCHED THEN
UPDATE SET T1.NAME=#{NAME,jdbcType=VARCHAR},T1.ROOM_ID=#{ROOM_ID,jdbcType=NUMERIC},T1.BED_ID=#{BED_ID,jdbcType=NUMERIC},T1.BUILDING_ID=#{BUILDING_ID,jdbcType=NUMERIC}
WHEN NOT MATCHED THEN
INSERT (ID,NAME,ROOM_ID,BED_ID,BUILDING_ID) VALUES(#{ID,jdbcType=NUMERIC},#{NAME,jdbcType=VARCHAR},#{ROOM_ID,jdbcType=NUMERIC} ,#{BED_ID,jdbcType=NUMERIC},#{BUILDING_ID,jdbcType=NUMERIC})
</update>

 sql exists用法

http://www.cnblogs.com/mytechblog/articles/2105785.html

怎么设置oracle主键自增长

http://blog.csdn.net/liunian02050328/article/details/40422065/

触发器:可以通过SQL developer来设置

http://blog.csdn.net/indexman/article/details/8023740/

CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name; 

序列:

create sequence SEQ_TEST
minvalue 1 --最小值
nomaxvalue --不设置最大值
start with 1 --从1开始计数
increment by 1 --每次加1个
nocycle --一直累加,不循环
nocache; --不建缓冲区

如何在mybatis中写多条SQL语句

https://stackoverflow.com/questions/7174225/mybatis-executing-multiple-sql-statements-in-one-go-is-that-possible

<delete id="deleteUnfinishedData" parameterType="map">
{call
declare
begin
delete from TABLE1 where id = #{valueFromMap1};
delete from TABLE2 where id = #{valueFromMap2};
end
}
</delete>

  

{call
declare
begin
MERGE INTO DORMTEST T1
USING dual
ON ( T1.ID=#{ID,jdbcType=NUMERIC})
WHEN MATCHED THEN
UPDATE SET T1.NAME=#{NAME,jdbcType=VARCHAR},T1.ROOM_ID=#{ROOM_ID,jdbcType=NUMERIC},T1.BED_ID=#{BED_ID,jdbcType=NUMERIC},T1.BUILDING_ID=#{BUILDING_ID,jdbcType=NUMERIC}
WHEN NOT MATCHED THEN
INSERT (ID,NAME,ROOM_ID,BED_ID,BUILDING_ID) VALUES(#{ID,jdbcType=NUMERIC},#{NAME,jdbcType=VARCHAR},#{ROOM_ID,jdbcType=NUMERIC} ,#{BED_ID,jdbcType=NUMERIC},#{BUILDING_ID,jdbcType=NUMERIC}); MERGE INTO STAFFTEST T2
USING dual
ON ( T2.STAFF_ID=#{ID,jdbcType=NUMERIC})
WHEN MATCHED THEN
UPDATE SET T2.PHONE=#{PHONE,jdbcType=VARCHAR},T2.GENDER=#{GENDER,jdbcType=VARCHAR},T2.ADMIN_PKID=#{ADMIN_PKID,jdbcType=NUMERIC}
WHEN NOT MATCHED THEN
INSERT (STAFF_ID,STAFF_NAME,PHONE,GENDER,ADMIN_PKID) VALUES(#{ID,jdbcType=NUMERIC},#{NAME,jdbcType=VARCHAR},#{PHONE,jdbcType=VARCHAR} ,#{GENDER,jdbcType=VARCHAR},#{ADMIN_PKID,jdbcType=VARCHAR}); end
}

  

使用 mybatis和oracle 数据库出现的问题的更多相关文章

  1. 使用mybatis向oracle数据库插入数据异常

    遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...

  2. MyBatis面对Oracle数据库如何实现主键列自增长

    因为Oracle数据库而言 不能够像SqlServer和MySql一样主键自增 而且MyBatis也没有提供直接的主键自增方法 所以我们自己使用查询语句来实现自增 实现代码: <insert i ...

  3. Mybatis在oracle数据库中插入数据后返回自增值ID

    1.将id设置成自增序列 CREATE OR REPLACE TRIGGER "DATALIB"."TRIG_USER_ADD" BEFORE INSERT O ...

  4. Mybatis对oracle数据库进行foreach批量插入操作

    MySQL支持的语法 INSERT INTO `tableX` ( `a`, `b`, `c`, `d`, `e` ) VALUES <foreach collection ="lis ...

  5. SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)

    Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...

  6. spring boot 集成mybatis连接oracle数据库

    1. POM文件添加依赖 <!-- Mybatis --> <dependency> <groupId>org.mybatis.spring.boot</gr ...

  7. Mybatis操作oracle数据库的一些坑

    oracle区分大小写,如果不想区分,必须要用引号包住 使用mybatis的generator生成的时候,建议使用全大写表,中间用下划线隔开,会生成驼峰字段 oracle没有空字符串的概念 写myba ...

  8. springboot集成druid+mybatis连接oracle数据库

    2.1.配置 druid 数据源 2. 随后要进行druid 的数据源的配置,如果要想使用druid 的数据源,那么首先一定要去修改 pom.xml 配置文件,引入以下包: oracle官网下载 oj ...

  9. MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

    最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...

随机推荐

  1. 下拉框select chosen被遮盖

    最简单的就是让容器高度大点. 用js调整也行. 为什么z-index不管事,看下面... 浏览器支持 所有主流浏览器都支持 z-index 属性. 注释:任何的版本的 Internet Explore ...

  2. Android Service的分类详解

    按照启动方式分类 谷歌官网对Service的分类 Service根据启动方式分为两类:Started和Bound.其中,Started()是通过startService()来启动,主要用于程序内部使用 ...

  3. BZOJ4456 ZJOI2016旅行者(分治+最短路)

    感觉比较套路,每次在长边中轴线处切一刀,求出切割线上的点对矩形内所有点的单源最短路径,以此更新每个询问,递归处理更小的矩形.因为若起点终点跨过中轴线是肯定要经过的,而不跨过中轴线的则可以选择是否经过中 ...

  4. Codeforces Round #392(Div 2) 758F(数论)

    题目大意 求从l到r的整数中长度为n的等比数列个数,公比可以为分数 首先n=1的时候,直接输出r-l+1即可 n=2的时候,就是C(n, 2)*2 考虑n>2的情况 不妨设公比为p/q(p和q互 ...

  5. [bzoj5285] [HNOI2018]寻宝游戏

    Description 某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会. 作为新生的你,对这个活动非常感兴趣. ...

  6. [洛谷P4940]Portal2

    题目大意:维护两个栈,几个操作: $PUSH\;x\;num:$把$num$压入栈$x$ $POP\;x:$弹出栈$x$栈顶元素 $ADD\;x:$取出两个栈栈顶,把相加值压入栈$x$ $SUB\;x ...

  7. nowcoder 提高组模拟赛 选择题 解题报告

    选择题 链接: https://www.nowcoder.com/acm/contest/178/B 来源:牛客网 题目描述 有一道选择题,有 \(a,b,c,d\) 四个选项. 现在有 \(n\) ...

  8. sqlplus 几个命令:

    sqlplus 几个命令: 在sys,system,sysman,scott四个用户权限中,scott用户最低. 其权限依次从高到低. cmd进入sqlplus sqlplus 登录命令: 登录sys ...

  9. HDU3338:Kakuro Extension(最大流)

    Kakuro Extension Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. im4java学习---阅读documentation文档

    Utilities----im提供的一些工具类 ①.读取图片文件信息---Info类 我们之前的做法: op.format("width:%w,height:%h,path:%d%f,siz ...