ibatis <dynamic> 标签 update 的相关问题总结
2012-08-24 10:34
423 查看
1.为了使用<dynamic >中 <isNotNull>和其他地方出现不必要的bug 我们在定义map 或者 TO时 将所有的类型都定义为原生态的类型,比如定义INTEGER。
2.在写语句时很容易引入很难察觉的错误 比如“ : ” ,和“ : ” .这两个字符在.java 文件里面会区别非常明显,但是在xml中,肉眼是看不出来的。所以尽量统一,将标点用半角英文。
3.所有出现字段的地方,尽可能精确的制定类型,虽然有些地方看起来写或者不写都可以正常运行,这样做可以减少出错的几率,减少后顾之忧。
4.贴出一段做范例。
TOMap:
SQL:
TO:
如果可以,可以做两套TO,一个作为参数,另一个TO作为返回值。这里就不举例了。
2.在写语句时很容易引入很难察觉的错误 比如“ : ” ,和“ : ” .这两个字符在.java 文件里面会区别非常明显,但是在xml中,肉眼是看不出来的。所以尽量统一,将标点用半角英文。
3.所有出现字段的地方,尽可能精确的制定类型,虽然有些地方看起来写或者不写都可以正常运行,这样做可以减少出错的几率,减少后顾之忧。
4.贴出一段做范例。
TOMap:
<resultMap id="userTO" class="UserTO"> <!--设置需要的数据表项与UserTO成员变量之间的对应关系 --> <result column="ID" jdbcType="int" javaType="java.lang.Integer" property="id"/> <result column="USERNAME" jdbcType="varchar" javaType="java.lang.String" property="username" /> <result column="PASSWORD" jdbcType="varchar" javaType="java.lang.String" property="password"/> <result column="GENDER" jdbcType="Integer" javaType="java.lang.Integer" property="gender" /> <result column="DATE_OF_BIRTH" jdbcType="date" javaType="java.util.Date" property="dateOfBirth"/> <result column="CREATED_DATE" jdbcType="datetime" javaType="java.util.Date" property="createdDate" /> <result column="IMAGE_ID" jdbcType="Integer" javaType="java.lang.Integer" property="imageId"/> </resultMap>
SQL:
<update id="updateUserinfoById" parameterClass="UserTO " > update USER <dynamic prepend="set"> <isNotNull prepend="," property="password">PASSWORD = #password: VARCHAR#</isNotNull> <isNotNull prepend="," property="gender">GENDER = #gender: INTEGER#</isNotNull> <isNotNull prepend="," property="dateOfBirth">DATE_OF_BIRTH = #dateOfBirth: TIMESTAMP#</isNotNull> <isNotNull prepend="," property="imageId">IMAGE_ID = #imageId: INTEGER#</isNotNull> <isNotNull prepend="," property="status">STATUS = #status: INTEGER#</isNotNull> </dynamic> where ID=#id: INTEGER# </update>
TO:
public class UserTO implements Constant { private Integer id; private String username; private String password; private Integer gender; private Integer imageId; private Date dateOfBirth; private Date createdDate;
如果可以,可以做两套TO,一个作为参数,另一个TO作为返回值。这里就不举例了。
相关文章推荐
- ssh错误总结1.1----关与struts2中极为恶心的<s:action>标签问题
- 有关Html中<a>、<link>和<script>标签中相对路径与绝对路径的问题总结
- <s:select>标签自动生成<tr><td>的问题~
- <li>标签之间有间距的问题
- <action>标签中的相关属性
- struts 2标签 <s:textfield> 样式问题
- ibatis学习之道:ibatis的<[CDATA]>dynamic属性跟#$的应用
- <s:textfield>标签的tr问题
- Sturts2标签<s:property>的用法大总结
- 关于ul下<li></li>内插入<span>内容</span>标签自动换行不在同一行问题
- html<img><map><area>标签总结
- html<mata>标签用法总结
- web.xml中配置<error-page>标签不起作用的问题
- struts1中使用<html:select>标签的的三种情况的传值问题
- ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在
- struts2中级联菜单标签<s:doubleselect>的若干常见问题(二级菜单不显示,FreeMarker问题)
- struts2 标签<s:iterator />获取长度问题
- Quartz调度框架应用总结<2>--作业及其相关
- 【吐槽篇之经验<三>】性能问题定位与调优测试总结
- 友善官方<<Mini2440 Linux移植开发实战指南>>问题总结