Ibatis +Springmvc+Freemarker+Dwr 搭建之后的使用

 

声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相。 欢迎加入资源共享QQ群:275343679,一起发现知识、了解知识、学习知识、分享知识。个人网站 www.itlantian.top

================================================================================

1.创建实体bean (注:条件查询,使用map键子对集合进行赋值,否则会导致sqlmap.xml不能识别变量)

 A.bean.xml 配置insert、delete、update、select
 B.在bean.xml传值的时候可以是javabean对象
 C.返回结果类型
 * resultClass=“javabean的路径” 例如:“net.chinanets.flly.Ay”
 D.传入类型
 * parameterClass=“javabean的路径或参数类型(java.util.HashMap)”

2.在DAO中创建接口interface,编写初始化方法

3.在DAOImpl实现DAO中的接口类(调用接口类的方法,添加@的注解)
 A.继承SqlMapclientDaoSupport

4.与第二部相同,在service包中创建接口interface,编写初始化方法

5.在serviceImpl中实现service的接口
 A.声明私有的Dao中的接口类

 B.实现service接口中的初始化方法,调用DAO接口类的方法
 C.在实现insert、update、delete时需要注解提交事务,否则数据将无法更新
  (@Transactional(rollbackForClassName={"DataCheckException"}))
   查询(@SuppressWarnings("unchecked"))
  D.顶开头注解 @Service(“ayservice”),“ayService”
   与applicationContext.xml的配置别名相同

6.在applicationContext.xml中添加配置
<property name="ayService" ref="ayService"></property>

7.在sql-map-config.xml 添加配置
 A.将bean.xml文件配置其中
<SqlMap resource="bean.xml配置文件的地址" /> 例如:“net/chinanets/bean.xml”

8.在dwr.xml中配置(实体Bean)************每个新的bean必须在dwr中配置,才能在JSP页面直接调用
 A.<convert match="实体Bean地址" (如:xxxx.xxx.bean) converter="bean"></convert>


9.在管理类xxxManager声明私有的xxService,只赋予set的方法


10.在xxManager类中添加构造方法,调用xxService中的初始化方法


11.给jsp页面导入js
   

   A. <script type='text/javascript' src='<%=basePath%>dwr/engine.js'></script>


   B.<script type='text/javascript' src='<%=basePath%>dwr/interface/accessManager.js'></script> 
   C.accessManager.js与dwr.xml的配置有关

    dwr.xml>
      <create creator="spring" javascript="accessManager">
    <param name="beanName" value="accessManager" />
      </create>
   D.javascript="accessManager" 中的 accessManager 别名跟applicationcontext.xml的配置有关


   E.applicationcontext.xml>
    <bean id="accessManager" class="net.chinanets.correct.AccessManager">
       <property name="fileInfService" ref="fileInfService"></property>
      <property name="spDCService" ref="spDCService"></property>
      <property name="fileScoreService" ref="fileScoreService"></property>
    </bean>

12.赋值问题注意事项

   xxxDaoImpl extends 

   继承SqlMapClientDaoSupport 需要申明私有“id”
   继承BaseDaoSupport<beanName> 不需要申明


 条件查询
 使用map键子对集合进行赋值,否则会导致sqlMap.xml中不能识别

 Map<String,Object> map= new HashMap<String, Object>();
 map.put("ay",value);
 "ay"与SqlMap.xml中的 property=“ay”的别名相同
   <isNotEmpty property="ay">
<![CDATA[
       AND  INSTR (a.ay, #ay#)
]]>
   </isNotEmpty>
 当“ay”的值不为空时,添加以上语句
 
 *列如:<!-- 分页查询  -->
<select id="FY_AYSQFT"
resultClass="net.chinanets.flyy.domain.Aysqft">

<![CDATA[
SELECT tab1.* FROM (SELECT a.* , ROWNUM rn FROM aysqft a WHERE  rownum <= #bpage#             
]]>
<isNotEmpty property="ay">
<![CDATA[
          AND   a.ay like   '%'||#ay#||'%'     
]]>
</isNotEmpty>
<![CDATA[
                order by id asc) tab1 where tab1.rn > #fpage#
]]>
</select>

例子:(增删改查)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="gdGbal">
<!-- 根据约束条件查询列表 resultClass="java.lang.Long"-->
<select id="QUERY_GDGBAL_BY_CONDITION"
resultClass="net.chinanets.flyy.domain.GdGbal">
<![CDATA[
SELECT *
 FROM (SELECT ROWNUM row_, t.*
         FROM (SELECT g.id,g.mc,g.qs,g.ay_id,g.zsfy,g.slrq,a.mc aymc,g.gdfy_id
                 FROM gdgbal g,ay a
                WHERE g.ay_id=a.id
]]>
<isNotEmpty property="gc.qs">
<![CDATA[
            AND  INSTR (g.qs, #gc.qs#) > 0
]]>
</isNotEmpty>
<isNotEmpty property="gc.mcgjz">
<iterate prepend="AND" property="gc.paramsArray" conjunction="AND">
          g.mc like '%'||#gc.paramsArray[]#||'%'
       </iterate>
</isNotEmpty>

<isNotEmpty property="gc.zsfy">
<isEqual property="gc.gdfy_jb" compareValue="1">
<![CDATA[
          AND g.zsfy  in (select mc from gdfy where fid 
          in (select id from gdfy where fid 
          in (select id from gdfy where mc = #gc.zsfy#)))  
]]>
</isEqual>
<isEqual property="gc.gdfy_jb" compareValue="2">
<![CDATA[
          AND g.zsfy  in (select mc from gdfy where fid 
          in (select id from gdfy where mc = #gc.zsfy#)) 
]]>
</isEqual>
<isEqual property="gc.gdfy_jb" compareValue="3">
<![CDATA[
          AND g.zsfy = #gc.zsfy# 
]]>
</isEqual>
<isEqual property="gc.gdfy_jb" compareValue="0">
<![CDATA[
          AND INSTR(g.zsfy, #gc.zsfy#) > 0  
]]>
</isEqual>
</isNotEmpty>
<isNotEmpty property="gc.ah">
<![CDATA[
           AND  g.ah like '%'||#gc.ah#||'%'
]]>
</isNotEmpty>
<isNotEmpty property="gc.gdfyId">
<![CDATA[
           AND  g.gdfy_id = #gc.gdfyId# 
]]>
</isNotEmpty>
<isNotEmpty property="gc.ayId">
<![CDATA[
            AND g.ay_id IN
(SELECT ID FROM ay 
START WITH ID = #gc.ayId# 
CONNECT BY PRIOR ID = sjayid
)
]]>
</isNotEmpty>
<![CDATA[
ORDER BY gbnf DESC) t
        WHERE ROWNUM <= #end#)
WHERE row_ >= #start# + 1
]]>
</select>

<!-- 增加公报案例 -->
<insert id="INSERT_GDGBAL"
parameterClass="net.chinanets.flyy.domain.GdGbal">
<selectKey keyProperty="id" resultClass="java.lang.Long">
SELECT ZEQ.NEXTVAL FROM DUAL
</selectKey>
<![CDATA[
INSERT INTO gdgbal
           (nr,mc,gbnf,qs,ay_id,id,zsfy,slrq,ah,gdfy_id
           )
    VALUES (#nr#,#mc#,#gbnf#,#qs#,#ayId#,#id#,#zsfy#,#slrq#,#ah#,#gdfyId#
           )
]]>
</insert>

<!-- 更新案例 -->
<update id="UPDATE_GDGBAL"
parameterClass="net.chinanets.flyy.domain.GdGbal">
<![CDATA[
UPDATE gdgbal
  SET mc = #mc#,
      gbnf = #gbnf#,
      nr = #nr#,
      ah = #ah#,
      ay_id=#ayId#,
      qs=#qs#,
      zsfy=#zsfy#, 
      slrq=#slrq#,
      gdfy_id = #gdfyId#
]]>
<![CDATA[
WHERE ID = #id#
]]>
</update>

<!-- 删除案例 -->
<delete id="DELETE_GDGBAL_BY_ID" parameterClass="java.lang.Long">
<![CDATA[
DELETE GDGBAL
     WHERE ID = #id#
]]>
</delete>

</sqlMap>

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值