`
XiaoLuobo
  • 浏览: 3371 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

废话连篇

阅读更多
最近做的一个项目,自己搭建ORM层采用的是Ibatis框架,使用中遇到些理解出错之处。
记录自己使用的一些心得。


    1 用MAP向ibatis配置文件传参问题

    通常我们通过DAO调用配置文件时,加如下参数parameterClass="java.util.Map",在Dao中,我们调用map.put(key,value)方法,如下: 
  
Map parms = new HashMap();   
parms.put("startDate", example.getDatatime());   
parms.put("endDate", getLastDayOfMonth(example.getDatatime()));   
  
<select id="selectCountStatusByDate" resultClass="int" parameterClass="java.util.Map">  
 select count(*) from s_upload_log l where  l.datatime  between #startDate:VARCHAR# and #endDate:VARCHAR#   
</select>  
Map parms = new HashMap();
parms.put("startDate", example.getDatatime());
parms.put("endDate", getLastDayOfMonth(example.getDatatime()));

<select id="selectCountStatusByDate" resultClass="int" parameterClass="java.util.Map">
 select count(*) from s_upload_log l where  l.datatime  between #startDate:VARCHAR# and #endDate:VARCHAR#
</select>

  



   或者也可以用parameterClass="某个对象类型",Ibatis配置文件直接可以获取对象get方法的各个字段。

   但如果我们不用parameterClass="某个对象类型"的话,将该对象put到Map中,那对应的Ibatis配置文件用到的对象中的各个值,可以获取的到吗?答案是肯定的,用法是将map的key作为配置文件的前缀,同时不指名parameterClass,就OK了,代码如下:

SUploadLog record = new SUploadLog();    
Map map = new HashMap();   
map.put("upload", record);   
  
<update id="updateLogByTemplateId">  
    update S_UPLOAD_LOG   
    <dynamic prepend="set">  
      <isNotNull prepend="," property="upload.sname">  
        SNAME = #upload.sname:VARCHAR#   
      </isNotNull>  
      <isNotNull prepend="," property="upload.status">  
        STATUS = #upload.status:CHAR#   
      </isNotNull>  
    </dynamic>  
     where TEMPLATEID = #upload.templateid# and DATATIME=#upload.datatime#     
 </update>  
SUploadLog record = new SUploadLog(); 
Map map = new HashMap();
map.put("upload", record);

<update id="updateLogByTemplateId">
    update S_UPLOAD_LOG
    <dynamic prepend="set">
      <isNotNull prepend="," property="upload.sname">
        SNAME = #upload.sname:VARCHAR#
      </isNotNull>
      <isNotNull prepend="," property="upload.status">
        STATUS = #upload.status:CHAR#
      </isNotNull>
    </dynamic>
     where TEMPLATEID = #upload.templateid# and DATATIME=#upload.datatime#  
 </update>



  2 ##参数和$$参数的区别

  Ibatis的配置XML中,#parm#和$parm$ 是有区别的,例如:

<select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu">  
 select * from S_FUNCTION where SPARENT=#id#      
</select>  
  
<select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu">  
 select * from S_FUNCTION where SPARENT=$id$   
</select>  
<select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu">
 select * from S_FUNCTION where SPARENT=#id#   
</select>

<select id="SELECT-MENU" parameterClass="java.util.Map" resultMap="Result4Menu">
 select * from S_FUNCTION where SPARENT=$id$
</select>



前者会做类型检查,而后者不会。


分享到:
评论

相关推荐

    小学语文近义词妙语连珠近义词

    废话连篇形容讲话冗长且充斥着不必要或无关紧要的内容。 示例:有些人在会议上废话连篇,往往让人感到厌烦。 5. **妙语双关**: 拼音:miao yu shuang guan 解释:双关,指一语双关,一个词语或句子同时含有两...

    C语言深度解剖

    7. 对C语言书籍的评价与期望:作者在前言中表达了对现有C语言书籍的一些看法,认为多数书籍过于厚重且废话连篇,而他希望自己的作品能够精炼且直击要害。 8. 关于编程与实践教学的思想:作者提出了一种教学理念,即...

    初中语文作文最易失分点及应对技巧二

    组织材料不当主要体现在三个方面:流水账式叙述、平分秋色、构思老套以及废话连篇。为避免这些问题,学生需要学会聚焦主题,突出重点。写作前,多观察生活,积累素材,记录下新颖的想法和观察,寻找与众不同的角度。...

    培训体系实用培训方法与技巧.pptx

    培训中应避免含糊不清、废话连篇、照本宣科、私下交谈、责怪教具、说教、忽视问题、语速不稳定等问题,以确保培训的有效性和专业性。 以上内容详细阐述了培训的策略、方法和注意事项,旨在帮助培训师打造高效、实用...

    精品资料(2021-2022年收藏)企业员工必改的十大恶习.docx

    此外,文档还提到了在沟通时说些模棱两可、废话连篇的话语,这种沟通方式使员工始终处于一种模糊的状态,难以推动问题的有效解决。而那些被称为“电话线”式的中层干部,他们只是简单地传递上级指示,缺乏独立思考和...

    如何写好情感文章.doc

    - **忌日记体叙事**:不要把文章写成日常琐事的流水账,应有明确的观点和逻辑,避免口语化的表达和废话连篇。 - **忌简单罗列**:文章需包含个人观点,不能仅仅是事实的堆砌。应有深度分析和结论,让读者看到作者...

    16 应用文写作1-2021年新高考英语二轮复习语法及题型大全.pdf

    3. **过长或过短**:文章长度不符合要求,过长可能导致废话连篇,过短则可能遗漏必要的信息。 4. **语法错误**:常见的语法错误,如时态、主谓一致、冠词使用不当等。 5. **拼写错误**:简单的拼写错误会严重影响...

    常用英文口语日常生活口语表达

    ### 常用英文口语日常生活口语表达 #### I am speechless. 我无语了。 - **知识点**:这句话表达了一种强烈的惊讶或无言以对的情绪。通常用于当某人遇到令人震惊、意外或者非常难以置信的情况时。...

    SSM通用权限管理系统

    (1)拒绝废话连篇 拒绝讲了半天唧唧哇哇式讲解, 该课直接上干货.(2)拒绝DEMO式讲解, 不是写几个demo,叫学生下来做, 项目就讲完了.(3)拒绝一堆空理论,不落地技术实战.(4)拒绝 没有做个真实项目的讲师讲解. ...

Global site tag (gtag.js) - Google Analytics