关于Mybatis的XML配置文件的namespace元素的作用。

原创 2016年05月31日 15:07:18

关于Mybatis的XML配置文件的namespace元素的作用。


配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzcominfo.voucher.Voucher">
<cache-ref namespace="com.hzcominfo.dataggr.cloud" />


<insert id="insertVoucher" parameterType="com.hzcominfo.voucher.mapper.Voucher"
keyProperty="id">
INSERT INTO VOUCHER (
<include refid="fields" />
) VALUES (
<include refid="values" />
)
</insert>


<update id="updateVoucher" parameterType="com.hzcominfo.voucher.mapper.Voucher">
UPDATE VOUCHER
<include refid="set" />
WHERE id = #{id}
</update>


<update id="updateVoucherByCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria">
UPDATE VOUCHER
<include refid="set" />
<include refid="where" />
</update>
<update id="updateList" parameterType="com.hzcominfo.voucher.mapper.Voucher">
UPDATE VOUCHER
<include refid="set" />
where promotion_id=#{promotionId}
</update>
<update id="deleteVoucher" parameterType="String">
DELETE FROM VOUCHER
WHERE id = #{id}
</update>


<update id="deleteVoucherByContentCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria">
DELETE FROM VOUCHER
<include refid="where" />
</update>


<select id="selectVoucher" parameterType="String"
resultType="com.hzcominfo.voucher.mapper.Voucher">
SELECT * FROM VOUCHER where id = #{id}
</select>


<select id="selectVoucherByCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria"
resultType="String">
SELECT id FROM VOUCHER
<include refid="where" />
</select>
<select id="countVoucherByCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria"
resultType="long">
SELECT count(id) FROM VOUCHER
<include refid="where" />
</select>


<select id="selectVoucherIssue" parameterType="com.hzcominfo.voucher.mapper.VoucherIssue"
resultType="com.hzcominfo.voucher.mapper.VoucherIssue">
SELECT P.ID PROMOTIONID,F.ID PROMOTIONFACTORID,U.ID USEFACTORID
FROM PROMOTION P, PROMOTION_FACTOR F, USE_FACTOR U
WHERE P.ID=F.PROMOTION_ID AND U.PROMOTION_FACTOR_ID=F.ID AND F.ISSUING_FLAG='1'
AND F.ISSUE_TOTAIL_NUM>=F.ISSUE_NUM AND P.DELETED = '0' AND F.DELETED='0'
<if test="money!=null and money!=0">
<![CDATA[AND ${money}>=F.MONEY]]>
</if>
<if test="storeZomeLevel!=null and storeZomeLevel!=''">
<![CDATA[AND F.STORE_ZOME_LEVEL = '${storeZomeLevel}']]>
</if>
<if test="time!=null and time!=''">
<![CDATA[AND to_char(P.START_TIME,'yyyy-MM-dd') <= '${time}']]>
<![CDATA[AND to_char(P.END_TIME,'yyyy-MM-dd') >= '${time}']]>
</if>
<if test="isCash!=null and isCash!=''">
<![CDATA[AND F.COMMODITY_ID IS  NULL]]>
</if>
</select>

<sql id="fields">
id
<if test="promotionId!=null">,promotion_id</if>
<if test="status!=null">,status</if>
<if test="customerId!=null">,customer_id</if>
<if test="deleted!=null">,deleted</if>
<if test="addTime!=null">,add_time</if>
<if test="updateTime!=null">,update_time</if>
<if test="startTime!=null">,start_time</if>
<if test="endTime!=null">,end_time</if>
<if test="factorId!=null">,factor_id</if>
<if test="useId!=null">,use_id</if>
</sql>


<sql id="values">
#{id}
<if test="promotionId!=null">,#{promotionId}</if>
<if test="status!=null">,#{status}</if>
<if test="customerId!=null">,#{customerId}</if>
<if test="deleted!=null">,#{deleted}</if>
<if test="addTime!=null">,#{addTime}</if>
<if test="updateTime!=null">,#{updateTime}</if>
<if test="startTime!=null">,#{startTime}</if>
<if test="endTime!=null">,#{endTime}</if>
<if test="factorId!=null">,#{factorId}</if>
<if test="useId!=null">,#{useId}</if>

</sql>


<sql id="set">
<set>
<trim prefix="" prefixOverrides=",">
<if test="promotionId!=null">,promotion_id=#{promotionId}</if>
<if test="status!=null">,status=#{status}</if>
<if test="customerId!=null">,customer_id=#{customerId}</if>
<if test="deleted!=null">,deleted=#{deleted}</if>
<if test="addTime!=null">,add_time=#{addTime}</if>
<if test="updateTime!=null">,update_time=#{updateTime}</if>
<if test="startTime!=null">,start_time=#{startTime}</if>
<if test="endTime!=null">,end_time=#{endTime}</if>
<if test="factorId!=null">,factor_id=#{factorId}</if>
<if test="useId!=null">,use_id=#{useId}</if>
</trim>
</set>
</sql>
<sql id="where">
<where>
DELETED = '0'
<if test="id!=null">AND id=#{id}</if>
<if test="promotionId!=null">AND promotion_id=#{promotionId}</if>
<if test="status!=null">AND status=#{status}</if>
<if test="customerId!=null">AND customer_id=#{customerId}</if>
<if test="addTime!=null">AND add_time=#{addTime}</if>
<if test="startTime!=null">AND start_time=#{startTime}</if>
<if test="endTime!=null">AND end_time=#{endTime}</if>
<if test="factorId!=null">AND factor_id=#{factorId}</if>
<if test="useId!=null">AND use_id=#{useId}</if>
</where>
</sql>


</mapper>



java代码如下:


package com.hzcominfo.voucher.impl.dao;


import net.butfly.albacore.dao.EntityDAOBase;
import net.butfly.albacore.exception.BusinessException;


import java.util.List;


import com.hzcominfo.voucher.dao.VoucherDao;
import com.hzcominfo.voucher.mapper.Voucher;
import com.hzcominfo.voucher.mapper.VoucherIssue;



public class VoucherDaoImpl extends EntityDAOBase implements VoucherDao {


private static final long serialVersionUID = 1L;


@Override
public int updateList(Voucher voucher) throws BusinessException {
int flag = this.template.update("com.hzcominfo.voucher.Voucher.updateList", voucher);
return flag;
}

@Override
public List<VoucherIssue> selectVoucherIssue(VoucherIssue voucherIssue) {
List<VoucherIssue> list = this.template.selectList("com.hzcominfo.voucher.Voucher.selectVoucherIssue", voucherIssue);
return list;
}
}


其中:List<VoucherIssue> list = this.template.selectList("com.hzcominfo.voucher.Voucher.selectVoucherIssue", voucherIssue);

的com.hzcominfo.voucher.Voucher对应XML配置文件的namespace元素名,selectVoucherIssue对应其中的同名<select>元素的sql。

版权声明:本文为博主原创文章,未经博主允许不得转载。

mybatis 中mapper 的namespace有什么用?

转自:http://zhidao.baidu.com/link?url=nIPirOT8eftlnce6M-F3kvv3CO3rQcYmftlOIKvyADAn6pH__hnCGnL6XS5gDm6z...

使用MVC模式实现用户转账功能(区分dao层与service层)

现在我们要实现用户转账功能,之前在Mysql事务这片文章中也提到了用JDBC实现转账功能,今天我们加入MVC模式,使用MVC实现这个功能,进而区分dao层与service层的区别首先编写好Accoun...

命名空间namespace的概念和使用

为什么需要命名空间(问题提出)     命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。    在 C语言中定义了3个层次的作用域,即文件(编...

struts.xml配置文件(package,namespace,action)

struts2.0 xml配置 struts.xml文件结构  struts.xml文件是整个Struts2框架的核心。  struts.xml文件内定义了Struts2的系列Action,...
  • coolwxb
  • coolwxb
  • 2012年09月06日 23:22
  • 455

mybatis的mapper的配置文件的resultMap元素的用法和作用

mybatis的mapper.xml的配置文件的resultMap元素的用法和作用: resultMap元素的作用是将数据库中查询的每行记录映射成java中的实体类,以方便调用。 具体如下: ...

Spring框架的两个简化XML配置文件的p-namespace和c-namespace

Spring框架的模块化设计,出现了大量的命名空间。应用开发过程中用到的模块,才需要引入对应的命名空间。 Spring框架的丰富功能,导致了Spring框架的XML配置文件十分复杂。这里要介绍的是两个...

Struts2中xml配置文件的元素解析

1、package元素package用来管理action:使用了面向对象的思想 属性:name:用来定义包名,注意:同一个配置文件中包名是唯一的。extends:指定所继承的包,一般情况下需要继承st...

Struts中struts.xml配置文件的主要元素(package,action)

Struts中struts.xml配置文件的主要元素1、package元素1.1、作用: 在struts2的配置文件中引入了面向对象思想,使用了分包管理。易于...

关于xml配置文件无元素提示和the root element of the document is not <xsd:schema>.错误

这两个问题可以用同一种方式去解决。框架的XML文件在加载xsd或dtd文件时总是先试图在本地查找xsd文件,如果没有找到,才会转向去URL指定的路径下载。 解决方案如下: 按照图上标注的顺序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Mybatis的XML配置文件的namespace元素的作用。
举报原因:
原因补充:

(最多只允许输入30个字)