8、extends
继承的属性也非常的有用,有很多SQL的操作的主题都一样,只是,Where子句不同,或Order By的内容不同等等,我们都可以将主体独立出来,作为BASE,然后写不同的条件或排序规则来继承它。如下:
继承的属性也非常的有用,有很多SQL的操作的主题都一样,只是,Where子句不同,或Order By的内容不同等等,我们都可以将主体独立出来,作为BASE,然后写不同的条件或排序规则来继承它。如下:
<
select
id
="SelectEmployees"
parameterClass
="int"
resultMap
="SelectResult"
>
Select
id,
empcode,
emppassword,
empname,
empsex,
empage,
empmail,
empphoneno,
description,
isadmin,
isdelete
From Employees
</ select >
<!-- 员工列表 -->
< select id ="EmployeeList" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where isdelete='n'
</ select >
<!-- 员工明细 -->
< select id ="EmployeeDetail" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where id=#Id#
</ select >
<!-- 登录验证 -->
< select id ="Login" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where empcode=#EmpCode# and emppassword=#EmpPassword# and isdelete='n'
</ select >
<!-- 判断员工编号是否重复 -->
< select id ="CheckEmpCode" parameterClass ="String" resultMap ="SelectResult" extends ="SelectEmployees" >
Where empcode=#EmpCode# and isdelete='n'
</ select >
Select
id,
empcode,
emppassword,
empname,
empsex,
empage,
empmail,
empphoneno,
description,
isadmin,
isdelete
From Employees
</ select >
<!-- 员工列表 -->
< select id ="EmployeeList" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where isdelete='n'
</ select >
<!-- 员工明细 -->
< select id ="EmployeeDetail" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where id=#Id#
</ select >
<!-- 登录验证 -->
< select id ="Login" parameterClass ="int" resultMap ="SelectResult" extends ="SelectEmployees" >
Where empcode=#EmpCode# and emppassword=#EmpPassword# and isdelete='n'
</ select >
<!-- 判断员工编号是否重复 -->
< select id ="CheckEmpCode" parameterClass ="String" resultMap ="SelectResult" extends ="SelectEmployees" >
Where empcode=#EmpCode# and isdelete='n'
</ select >
四、Map or IDictionary Type Parameters
我们还可以使用System.Collection.IDictionary的实例来作为Statement的参数类,最常用的也就是Hashtable了,如下:
<
update
id
="ChangePassword"
parameterClass
="Hashtable"
>
Update Employees
Set password=#Password#
Where id=#Id#
</ update >
Update Employees
Set password=#Password#
Where id=#Id#
</ update >
注意:在我们传入的hashtable中必须包括名为Password和Id的两个键,其值的类型必须匹配它们对应的数据库列的类型,否则将会出错。