`

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);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics