您的位置:首页 > 其它

BackTrack4――利用渗透测试保证系统安全

2011-11-25 10:26 447 查看
1、动态SQL片段
通过SQL片段达到代码复用

        <!--
动态条件分页查询
-->

        <
sql
id
="sql_count"
>

                select
count(*)

        </
sql
>

        <
sql
id
="sql_select"
>

                select
*

        </
sql
>

        <
sql
id
="sql_where"
>

                from
icp

                <
dynamic
prepend
="where"
>

                        <
isNotEmpty
prepend
="and"
property
="name"
>

                                name
like '%$name$%'

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="path"
>

                                path
like '%path$%'

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="area_id"
>

                                area_id
= #area_id#

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="hided"
>

                                hided
= #hided#

                        </
isNotEmpty
>

                </
dynamic
>

                <
dynamic
prepend="">

                        <
isNotNull
property
="_start"
>

                                <
isNotNull
property
="_size"
>

                                        limit
#_start#, #_size#

                                </
isNotNull
>

                        </
isNotNull
>

                </
dynamic
>

        </
sql
>

        <
select
id
="findByParamsForCount"
parameterClass
="map"
resultClass
="int"
>

                <
include
refid
="sql_count"
/>

                <
include
refid
="sql_where"
/>

        </
select
>

        <
select
id
="findByParams"
parameterClass
="map"
resultMap
="icp.result_base"
>

                <
include
refid
="sql_select"
/>

                <
include
refid
="sql_where"
/>

        </
select
>

 
2、数字范围查询
所传参数名称是捏造所得,非数据库字段,比如_img_size_ge、_img_size_lt字段

                        <
isNotEmpty
prepend
="and"
property
="_img_size_ge"
>

                                <![CDATA[

                                img_size
>= #_img_size_ge#

                        ]]>

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="_img_size_lt"
>

                                <![CDATA[

                                img_size
<
#_img_size_lt#

                        ]]>

                        </
isNotEmpty
>

 
多次使用一个参数也是允许的

                        <
isNotEmpty
prepend
="and"
property
="_now"
>

                                <![CDATA[

                                            execplantime
>= #_now#

                                    
]]>

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="_now"
>

                                <![CDATA[

                                            closeplantime
<
=
#_now#

                                    
]]>

                        </
isNotEmpty
>

 
3、时间范围查询

                        <
isNotEmpty
prepend
=""
property="
_starttime">

                                <
isNotEmpty
prepend
="and"
property
="_endtime"
>

                                        <![CDATA[

                                        createtime
>= #_starttime#

                                        and
createtime <
#_endtime#

                                
]]>

                                </
isNotEmpty
>

                        </
isNotEmpty
>

 
4、in查询

                        <
isNotEmpty
prepend
="and"
property
="_in_state"
>

                                state
in ('$_in_state$')

                        </
isNotEmpty
>

 
5、like查询

                        <
isNotEmpty
prepend
="and"
property
="chnameone"
>

                                (chnameone
like '%$chnameone$%' or spellinitial like '%$chnameone$%')

                        </
isNotEmpty
>

                        <
isNotEmpty
prepend
="and"
property
="chnametwo"
>

                                chnametwo
like '%$chnametwo$%'

                        </
isNotEmpty
>

 
6、or条件

                        <
isEqual
prepend
="and"
property
="_exeable"
compareValue
="N"
>

                                <![CDATA[

                                (t.finished='11'    or
t.failure=3)

                        ]]>

                        </
isEqual
>

 

                        <
isEqual
prepend
="and"
property
="_exeable"
compareValue
="Y"
>

                                <![CDATA[

                                t.finished
in ('10','19') and t.failure<
3

                        ]]>

                        </
isEqual
>

 
7、where子查询

                        <
isNotEmpty
prepend
=""
property="
exprogramcode">

                                <
isNotEmpty
prepend
=""
property="
isRational">

                                        <
isEqual
prepend
="and"
property
="isRational"
compareValue
="N"
>

                                                code
not in

                                                (select
t.contentcode

                                                from
cms_ccm_programcontent t

                                                where
t.contenttype='MZNRLX_MA'

                                                and
t.programcode = #exprogramcode#)

                                        </
isEqual
>

                                </
isNotEmpty
>

                        </
isNotEmpty
>

 

        <
select
id
="findByProgramcode"
parameterClass
="string"
resultMap
="cms_ccm_material.result"
>

                select
*

                from
cms_ccm_material

                where
code in

                (select
t.contentcode

                from
cms_ccm_programcontent t

                where
t.contenttype = 'MZNRLX_MA'

                and
programcode = #value#)

                order
by updatetime desc

        </
select
>

 

9、函数的使用

        <!--
添加
-->

        <
insert
id
="insert"
parameterClass
="RuleMaster"
>

                insert
into rulemaster(

                name,

                createtime,

                updatetime,

                remark

                )
values (

                #name#,

                now(),

                now(),

                #remark#

                )

                <
selectKey
keyProperty
="id"
resultClass
="long"
>

                        select
LAST_INSERT_ID()

                </
selectKey
>

        </
insert
>

        <!--
更新
-->

        <
update
id
="update"
parameterClass
="RuleMaster"
>

                update
rulemaster set

                name
= #name#,

                updatetime
= now(),

                remark
= #remark#

                where
id = #id#

        </
update
>

 

10、map结果集

        <!--
动态条件分页查询
-->

        <
sql
id
="sql_count"
>

                select
count(a.*)

        </
sql
>

        <
sql
id
="sql_select"
>

                select
a.id                vid,

                a.img            
imgurl,

                a.img_s        
imgfile,

                b.vfilename
vfilename,

    b.name            name,

                c.id                sid,

                c.url            
url,

                c.filename    filename,

                c.status        status

        </
sql
>

        <
sql
id
="sql_where"
>

                From
secfiles c, juji b, videoinfo a

                where

                a.id
= b. videoid

                and
b.id = c.segmentid

                and
c.status = 0

                order
by a.id asc,b.id asc,c.sortnum asc

                <
dynamic
prepend="">

                        <
isNotNull
property
="_start"
>

                                <
isNotNull
property
="_size"
>

                                        limit
#_start#, #_size#

                                </
isNotNull
>

                        </
isNotNull
>

                </
dynamic
>

        </
sql
>

        <!--
返回没有下载的记录总数
-->

        <
select
id
="getUndownFilesForCount"
parameterClass
="map"
resultClass
="int"
>

                <
include
refid
="sql_count"
/>

                <
include
refid
="sql_where"
/>

        </
select
>

        <!--
返回没有下载的记录
-->

        <
select
id
="getUndownFiles"
parameterClass
="map"
resultClass
="java.util.HashMap"
>

                <
include
refid
="sql_select"
/>

                <
include
refid
="sql_where"
/>

        </
select
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: