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