声明:本文纯属个人随手笔记,如果对您有参考价值我十分开心,如果有存在错误,或者有更好的解决办法也麻烦您留言告诉我,大家共同成长,切勿恶言相。 欢迎加入资源共享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>