初识Spring+SpringMVC+MyBatis框架(三)---spring-mybatis.xml,AddMapping.xml

        spring-mybatis.xml 文件里配置了数据源,使用的是阿里巴巴的Druid数据库连接池。

        然后是mybatis配置,在sqlSessionFactory里注入dataSource,扫描各种Mapping文件。

       最后配置事务管理。

      下面再看一下AddMapping.xml 。

      dao层编写一个接口文件,如下所示:

package me.lyshi.mvc.dao;

import java.util.List;

import me.lyshi.mvc.model.Add;

public  interface  AddMapper {

	int   insertSelective(Add addInfo);

	List<Add> getAll();

	int deleteByPrimaryKey(String id);

	Add selectByPrimaryKey(String id);

	int updateByPrimaryKeySelective(Add add);

}

接口里面的方法名,对应Mapping中的id属性,比如上面的getAll(),需要返回List<Add>,在Mapping中应这样写:

	<resultMap type="me.lyshi.mvc.model.Add" id="BaseResultMap">
		<id column="id"       property="id"   jdbcType="VARCHAR" />
		<result column="name11" property="name" jdbcType="VARCHAR" />
		<result column="pwd11"  property="pwd"  jdbcType="VARCHAR" />
	</resultMap>
	
	<!-- 获取所有的记录,返回记录的格式如上面的resultMap中的BaseResultMap定义的实体-->
  	<select id="getAll"  resultMap="BaseResultMap">
  		SELECT * FROM tadd
  	</select>

如果是查询某id的某条记录,接口里定义方法  Add selectByPrimaryKey(String id);,传入id参数,返回实体Add,在Mapping中应这样写:

   <resultMap type="me.lyshi.mvc.model.Add" id="BaseResultMap">
	<id column="id"       property="id"   jdbcType="VARCHAR" />
	<result column="name11" property="name" jdbcType="VARCHAR" />
	<result column="pwd11"  property="pwd"  jdbcType="VARCHAR" />
   </resultMap> 
   <!-- 根据id获得记录 -->
   <select id="selectByPrimaryKey"  resultMap="BaseResultMap"   parameterType="java.lang.String" >
  	SELECT 
  	<include refid="Base_Column_List"/>
  	FROM tadd
  	WHERE id= #{id,jdbcType=VARCHAR}
  </select>

如果是新增一条记录,接口里定义方法  int insertSelective(Add addInfo); 插入实体,返回成功与否,在Mapping中应该这样写:

<!-- 新增 -->
	<insert id="insertSelective" parameterType="me.lyshi.mvc.model.Add" >
	    INSERT INTO tadd 
	    
	       <trim prefix="(" suffix=")" suffixOverrides="," >
	      <if test="id != null" >
	        id,
	      </if>
	      <if test="name != null" >
	        name,
	      </if>
	      <if test="pwd != null" >
	        pwd,
	      </if>
	    </trim>
	    <trim prefix="values (" suffix=")" suffixOverrides="," >
	      <if test="id != null" >
	        #{id,jdbcType=VARCHAR},
	      </if>
	      <if test="name != null" >
	        #{name,jdbcType=VARCHAR},
	      </if>
	      <if test="pwd != null" >
	        #{pwd,jdbcType=VARCHAR},
	      </if>
	    </trim>
	    

  </insert>

trim标签表示,prefix表示加上前缀,suffix 表示加上后缀,suffixOverrides表示把尾部的某些内容覆盖,可以去掉尾部多余的逗号。

如果是修改一条记录,接口里定义方法 int updateByPrimaryKeySelective(Add add); 更新实体,返回成功与否,在Mapping中应该这样写:

 <!-- 修改某条记录 -->
  <update id="updateByPrimaryKeySelective" parameterType="me.lyshi.mvc.model.Add">
  	UPDATE tadd 

  	<trim prefix="SET" suffixOverrides=",">  
  		<if test="name !=null">
  			name = #{name,jdbcType=VARCHAR},
  		</if>
  		<if test="pwd !=null">
  			pwd = #{pwd,jdbcType=VARCHAR},
  		</if>  		
  	</trim>
  	
  	WHERE id=#{id,jdbcType=VARCHAR}
  </update>

如果是删除一条记录,接口里定义方法  int deleteByPrimaryKey(String id);  删除某id对应的实体,返回成功与否,在Mapping中应该这样写:

  <!-- 删除某条记录 -->
  <delete id="deleteByPrimaryKey"  parameterType="java.lang.String">
  	DELETE  FROM tadd 
  	WHERE id = #{id,jdbcType=VARCHAR}  
  </delete>

更多Mapping里的如何动态构造SQL,可参考网址http://www.blogjava.net/stevenjohn/archive/2012/12/25/393451.html

 

 

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值