zoukankan      html  css  js  c++  java
  • 使用 mybatis和oracle 数据库出现的问题

    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
        }	
    

      

  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/hong2016/p/7280730.html
Copyright © 2011-2022 走看看