关于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属性作用小结

这几天试着搭建了SpringMVC、Spring和Mybatis的环境,深有感触,尤其是对面向接口编程有了更加深层次的体会。 尤其是在持久层框架Mybatis,以前不管是Dao层还是Servic...
  • luopeng0925
  • luopeng0925
  • 2017年10月12日 09:48
  • 196

MyBatis学习笔记(一)——配置文件中的别名以及mapper中的namespace

MyBatis中如果每次配置类名都要写全称也太不友好了,我们可以通过在主配置文件中配置别名,就不再需要指定完整的包名了。 别名的基本用法: ...... 但是如果每...
  • qq_28885149
  • qq_28885149
  • 2016年06月16日 21:18
  • 15059

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

关于Mybatis的XML配置文件的namespace元素的作用。 配置文件如下: keyProperty="id"> INSERT INTO VOUCHER...
  • suyu_yuan
  • suyu_yuan
  • 2016年05月31日 15:07
  • 2166

mapper.xml映射文件中命名空间问题

要注意的一个地方就是。 在User.xml  的配置文件中, mapper namespace="com.yihaomen.mybatis.inter.IUserOperation" , 命名空...
  • cao478208248
  • cao478208248
  • 2014年05月26日 16:18
  • 1930

mybatis 中mapper 的namespace有什么用?

转自:http://zhidao.baidu.com/link?url=nIPirOT8eftlnce6M-F3kvv3CO3rQcYmftlOIKvyADAn6pH__hnCGnL6XS5gDm6z...
  • suyu_yuan
  • suyu_yuan
  • 2016年05月06日 09:57
  • 12357

mybatis映射文件mapper.xml的写法。

在学习mybatis的时候我们通常会在映射文件这样写:&lt;?xml version="1.0" encoding="UTF-8" ?&gt;...
  • two_people
  • two_people
  • 2016年06月25日 20:22
  • 31599

配置文件中的别名以及mapper中的namespace

MyBatis中如果每次配置类名都要写全称也太不友好了,我们可以通过在主配置文件中配置别名,就不再需要指定完整的包名了。 别名的基本用法: [html] view pl...
  • asdfsadfasdfsa
  • asdfsadfasdfsa
  • 2016年07月26日 16:41
  • 3452

mybatis中,namespace的作用

在mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。 当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动 帮你找到对应...
  • u014645652
  • u014645652
  • 2016年07月29日 15:47
  • 2576

Mybatis的mapper标签 namespace属性说明

在mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的...
  • qq_33530388
  • qq_33530388
  • 2017年05月05日 11:52
  • 2102

MyBatis中mapper的namespace值

1.      MyBatis的命名空间(我们以下图的文件结构来说明)   MyBatis的命名空间说的是POJO的XXx.xml文件中的,主要是跟三个地方有关系, 第一个是Configur...
  • DING135DING
  • DING135DING
  • 2015年02月10日 19:03
  • 4240
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Mybatis的XML配置文件的namespace元素的作用。
举报原因:
原因补充:

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