博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IBATIS+ORACLE(一)
阅读量:5216 次
发布时间:2019-06-14

本文共 9273 字,大约阅读时间需要 30 分钟。

 

迁移时间:2017年6月1日15:55:17

Author:Marydon

  (四)IBATIS + ORACLE

    第一部分:基础篇

    1.4.1.1 分页SQL  

SELECT * FROM (
=#START# ]]>

    1.4.1.2 $column$

    执行sql语句时,控制台输出的语句,在该位置不会以问号的形式出现,而是直接填充其对应的值    

    1.4.1.3 日期类比较大小

= TO_DATE(#BEGINDATE#,'yyyy-MM-dd') ]]>

     1.4.1.4 从Oracle服务器获取当前系统日期

      dao层配置

/** * 获取Oracle服务器时间 * @return 系统当前时间 */public String getSYSDATE() throws DaoException {try {        return (String)sqlMapClient.queryForObject("telemedicine.service.bo.remoteCons.schedule.getSYSDATE");    } catch (SQLException e) {        String err = "查询系统当前时间出错->出错原因:" + e.getMessage();        log.error(err, e);        throw new DaoException(err, e);    }}

 

    1.4.1.5 增加

      方式一:主键使用序列生成

SELECT STSORGDIAITEM.NEXTVAL AS FID FROM DUAL
INSERT INTO TSORGDIAITEM(FID, FORGID, FITEMCODE, FITEMTYPE, FCURCODE, FCENCODE, FITEMNAME, FZJM, FITEMSPEC, FUNIT, FPRICE) VALUES(#FID :NUMERIC#, #FORGID :NUMERIC#, UPPER(#FITEMCODE :VARCHAR#), #FITEMTYPE :NUMERIC#, #FCURCODE :VARCHAR#, #FCENCODE :VARCHAR#, UPPER(#FITEMNAME :VARCHAR#), UPPER(#FZJM :VARCHAR#), #FITEMSPEC :VARCHAR#, #FUNIT :VARCHAR#, #FPRICE :NUMERIC#)
     方式二:主键采用sys_guid()生成
select sys_guid() as id from dual
INSERT INTO CONSULT_DEPENT_DOCTOR_INFO(DEPENT_DOCTOR_INFO_ID,CONSULT_APPLY_ID,CONSULT_DEPENT_ID,CONSULT_DEPENT,CONSULT_DOCTOR_ID,CONSULT_DOCTOR,DOCTOR_PHONE) VALUES(#id#,#CONSULT_APPLY_ID#,#CONSULT_DEPENT_ID#,#CONSULT_DEPENT#,#CONSULT_DOCTOR_ID#,#CONSULT_DOCTOR#,#DOCTOR_PHONE#)

     注意:

       a.selectKey标签的keyProperty属性:查询出来的结果会被放到这个字段里面;必须指明返回的数据类型:resultClass;select ... 别名 from dual 别名可以任意取; 

       b.执行插入语句后,默认返回的是主键。 

    1.4.1.6 WHERE条件
T.FORGID = #FORGID#
(UPPER(T.FICDCODE) LIKE UPPER(#FICDCODE# || '%') OR T.FICDCODE LIKE #FICDCODE# || '%')
T.FCENCODE IS NULL
T.FITEMNAME !=T1.FITEMNAME
T.FRCODE = '$FRCODE$'
    1.4.1.7 更新
    方式一
UPDATE TSORGDIAITEM SET FID=#FID:NUMERIC#, FORGID=#FORGID:NUMERIC#, FITEMCODE=#FITEMCODE:VARCHAR#, FITEMTYPE=#FITEMTYPE:NUMERIC#, FCURCODE=#FCURCODE:VARCHAR#, FCENCODE=#FCENCODE:VARCHAR#, FITEMNAME=#FITEMNAME:VARCHAR#, FZJM=#FZJM:VARCHAR#, FITEMSPEC=#FITEMSPEC:VARCHAR#, WHERE FID =#FID#
    方式二
UPDATE CONSULT_SCHEDULE SET ORG_CODE = #ORG_CODE#, DEPENT_ID = #DEPENT_ID#, DEPENT_NAME = #DEPENT_NAME#, DOCTOR_ID = #DOCTOR_ID#, DOCTOR_NAME = #DOCTOR_NAME#, DOCTOR_PHONE = #DOCTOR_PHONE#, SCHEDULE_DATE = TO_DATE(#SCHEDULE_DATE#,'YYYY-MM-DD'), WEEK_TXT = #WEEK_TXT#, WB_TYPE = #WB_TYPE#, CLOSE_TZ = #CLOSE_TZ#, REPLACE_TZ = #REPLACE_TZ#, DOCTOR_ID_TZ = #DOCTOR_ID_TZ#, DOCTOR_NAME_TZ = #DOCTOR_NAME_TZ#, REMARK = #REMARK# WHERE CONSULT_SCHEDULE_ID = #CONSULT_SCHEDULE_ID#
    UpdateTime--2017年8月8日09:30:01
UPDATE TDOCTORORG
FDOCTORCODE = #FDOCTORCODE#
FDOCTORCODE_CENTER = #FDOCTORCODE_CENTER#
FDOCTORNAME = #FDOCTORNAME#
FZJM = #FZJM#
FDEPTCODE = #FDEPTCODE#
FDOCTORPHONE = #FDOCTORPHONE#
FJOBTITLE = #FJOBTITLE#
FREMARK = #FREMARK#
WHERE FID = #FID#

    这种动态修改字段的方式需要注意的是:要修改的字段是否允许为空,如果允许用isNotNull;不允许用isNotEmpty       

    1.4.1.8 删除
    方式一
DELETE FROM TDICTICDCODE
FICDCODE=#FICDCODE#
FICDNAME=#FICDNAME#
FZJM=#FZJM#
FCLASSID=#FCLASSID#
    方式二
DELETE FROM TSORGDIAITEM T WHERE 1=1
    1.4.1.9 计数
    1.4.1.10 分页查询

    注意:      

      a.增,删,改这3个操作无需指明返回的数据类型,执行SQL语句,会默认返回影响行数:Integer;

      b.如果将Map作为查询的返回数据类型,必须指定resultClass="java.util.HashMap"。  

 

 

转载于:https://www.cnblogs.com/Marydon20170307/p/6929380.html

你可能感兴趣的文章
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
迪杰斯特拉算法---单源点最短路径
查看>>
【python】TCP/IP编程
查看>>
JVM 类型的生命周期学习
查看>>
图片加载失败显示默认图片占位符
查看>>
2018 ZJCPC
查看>>
【★】浅谈计算机与随机数
查看>>
[转载]宇宙文明等级的划分标准
查看>>
Jmeter的log输出控制
查看>>
《代码阅读方法与实现》阅读笔记一
查看>>
ActiveMQ配置使用 for CentOS6
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
linux下配置固定ip
查看>>
MsSql 游标 修改字段两个表关联 表向另个表插入记录
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
JavaScript怎么实现继承?
查看>>
Java中正则表达式的使用
查看>>