当前位置: 代码迷 >> SQL >> ibatIS的sqlMap怎么插入sysdate
  详细解决方案

ibatIS的sqlMap怎么插入sysdate

热度:105   发布时间:2016-05-05 15:18:39.0
ibatIS的sqlMap如何插入sysdate

使用ibatIS插入系统时间,代码一般是 new Date()直接写入系统时间,但是我们用的Oracle数据库,new Date()

默认只能插入年-月-日,没有时分秒,ibatIS不能自动处理。

?

一、insert直接命名为sysdate:

	<insert id="insert" parameterClass="com.hanpeng.base.phone.model.TDocument">		INSERT INTO T_DOCUMENT ( 			ROW_NO ,						CLASS_NAME ,						TITLE ,						CONTENT_INTRODUCTION ,						KEYWORDS ,						CREATE_DATE ,						EXAMPLE1 ,						EXAMPLE2 ,						EXAMPLE3 ,						ROW_NOFK ,						FILE_PATH 					) VALUES (			#rowNo:VARCHAR# ,							#className:VARCHAR# ,							#title:VARCHAR# ,							#contentIntroduction:VARCHAR# ,							#keywords:VARCHAR# ,							#createDate:sysdate# ,							#example1:VARCHAR# ,							#example2:VARCHAR# ,							#example3:VARCHAR# ,							#rowNofk:VARCHAR# ,							#filePath:VARCHAR# 						)	</insert>
?

?

二、直接插入sysdate,系统时间:

1.修改xml(TBussinessSafe.xml),date赋值时直接给sysdate,且必须是<isNotEmpty>

	<update id="update" parameterClass="com.hanpeng.base.phone.model.TBussinessSafe">		UPDATE T_BUSSINESS_SAFE			SET			<isNotNull prepend=" " property="bussinessId">				BUSSINESS_ID = #bussinessId# 			</isNotNull>				<isNotNull prepend="," property="bussinessNote">				BUSSINESS_NOTE = #bussinessNote# 			</isNotNull>					<isNotEmpty prepend="," property="bussinessNoteDate">				BUSSINESS_NOTE_DATE = sysdate			</isNotEmpty>					<isNotNull prepend="," property="bussinessNoteState">				BUSSINESS_NOTE_STATE = #bussinessNoteState# 			</isNotNull>					<isNotNull prepend="," property="state">				STATE = #state# 			</isNotNull>						WHERE			BUSSINESS_ID=#bussinessId# 					</update>

?

2.代码中再使用时,可以new Date(),sqlMap就会自动插入当前数据库系统时间,时分秒格式!

/*1.发送短信前先向数据库发出记录,记录要发送的短信信息*/String ranNum = KeyedDigestMD5.getKeyedDigest(VerificationGen.getVerification(4), "")                                                     .toUpperCase();TBussinessSafe tbs = service.queryUserById(bussinessId.trim());tbs.setBussinessNote(ranNum);//要发送的短信信息tbs.setBussinessNoteDate(new Date());//商户短信密码到期时间tbs.setBussinessNoteState("17");//短信是否验证,默认17未读取service.updateBussinessSafe(tbs);

?

?

三、不插入系统时间但是还要显示 年-月-日 时:分:秒

1.sqlMap文件

<update id="update" parameterClass="com.hanpeng.base.phone.model.TBussinessSafe">	UPDATE T_BUSSINESS_SAFE		SET		<isNotNull prepend=" " property="bussinessId">			BUSSINESS_ID = #bussinessId# 		</isNotNull>				<isNotEmpty prepend="," property="bussinessNoteDate">			BUSSINESS_NOTE_DATE = sysdate		</isNotEmpty>						<isNotNull prepend="," property="bussinessLastDate">			BUSSINESS_LAST_DATE = #bussinessLastDate:TIMESTAMP# 		</isNotNull>				<isNotNull prepend="," property="bussinessPassReset">			BUSSINESS_PASS_RESET = #bussinessPassReset:DATE# 		</isNotNull>					<isNotNull prepend="," property="bussinessComm">			BUSSINESS_COMM = #bussinessComm:NUMERIC# 		</isNotNull>				<isNotNull prepend="," property="bussinessCommDefault">			BUSSINESS_COMM_DEFAULT = #bussinessCommDefault:NUMERIC# 		</isNotNull>					WHERE		BUSSINESS_ID=#bussinessId# 				</update>

?###把BUSSINESS_LAST_DATE = #bussinessLastDate:DATE# 改为 TIMESTAMP

?

2.action中代码

/** * 1.更新登录安全信息:登录时间、登录IP */Date newDate = new Date();String newID = getRequest().getRemoteAddr();String oldID = "";if(tbs.getBussinessLoginIp() != null){	oldID = tbs.getBussinessLoginIp();}Date oleDate = null;if(tbs.getBussinessLoginDate() != null){	oleDate = tbs.getBussinessLoginDate();}tbs.setBussinessLastDate(oleDate);tbs.setBussinessLastIp(oldID);tbs.setBussinessLoginDate(newDate);tbs.setBussinessLoginIp(newID);if(flag.equals("true")){	tbs.setBussinessNoteState("16");}//更新商户登入信息service.updateBussinessSafe(tbs);
  相关解决方案