使用mybatis3--mapping文件方式

1.pom.xml环境搭建参考http://my.oschina.net/u/555061/blog/507474

2.给出目录结构,

使用mybatis3--mapping文件方式

3.跟注解方式不同,这里的dao包下面的UsersMapper.java不再有注解,

package com.xuebaosoft.mybatis3.mybatis_mapper.dao;

import java.util.List;
import java.util.Map;

import com.xuebaosoft.mybatis3.mybatis_mapper.model.Users;

public interface UsersMapper {
    int deleteByPrimaryKey(String id);

    int insert(Users record);

    int insertSelective(Users record);

    Users selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(Users record);

    int updateByPrimaryKey(Users record);

	List<Users> userPagingList(Map<String, Object> offsetAndPageSize);
}

其实这里是将带注解篇http://my.oschina.net/u/555061/blog/507474介绍的UserDao.java替换为了UsersMapper.java

4.查看配置文件,看下注解的功能是如何用mapping方式代替实现的,mybatis-config.xml配置如下,

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
	<environments default="environment">
		<environment id="environment">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://192.168.191.1:3306/xuebaodb?characterEncoding=UTF-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="UsersMapper.xml" />
	</mappers>
</configuration>

其实这里就是增加了:

<mappers>
	<mapper resource="UsersMapper.xml" />
</mappers>

也就说在加载配置mybatis-config.xml的时候就已经将UsersMapper.xml连带着一起注册到环境中了。而在UsersMapper.xml中会引用com.xuebaosoft.mybatis3.mybatis_mapper.dao.UsersMapper这个类,因此相当于Dao层的Mapper类有了,映射sql的mapper.xml有了,datasource也已经配置完毕,因此到此为止所有的环境均已构建好。

5.UsersMapper.xml如下,

<?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.xuebaosoft.mybatis3.mybatis_mapper.dao.UsersMapper">
	<resultMap id="BaseResultMap"
		type="com.xuebaosoft.mybatis3.mybatis_mapper.model.Users">
		<id column="id" property="id" jdbcType="VARCHAR" />
		<result column="username" property="username" jdbcType="VARCHAR" />
		<result column="password" property="password" jdbcType="VARCHAR" />
		<result column="name" property="name" jdbcType="VARCHAR" />
		<result column="nickname" property="nickname" jdbcType="VARCHAR" />
		<result column="sex" property="sex" jdbcType="VARCHAR" />
		<result column="picture" property="picture" jdbcType="VARCHAR" />
		<result column="createtime" property="createtime" jdbcType="VARCHAR" />
		<result column="lastlogintime" property="lastlogintime"
			jdbcType="VARCHAR" />
		<result column="tilepath" property="tilepath" jdbcType="VARCHAR" />
	</resultMap>
	<sql id="Base_Column_List">
		id, username, password, name, nickname, sex, picture, createtime,
		lastlogintime,
		tilepath
	</sql>
	<select id="selectByPrimaryKey" resultMap="BaseResultMap"
		parameterType="java.lang.String">
		select
		<include refid="Base_Column_List" />
		from users
		where id = #{id,jdbcType=VARCHAR}
	</select>
	<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
		delete from users
		where id = #{id,jdbcType=VARCHAR}
	</delete>
	<insert id="insert" parameterType="com.xuebaosoft.mybatis3.mybatis_mapper.model.Users">
		insert into users (id, username, password,
		name, nickname, sex,
		picture, createtime, lastlogintime,
		tilepath)
		values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR},
		#{password,jdbcType=VARCHAR},
		#{name,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR},
		#{picture,jdbcType=VARCHAR}, #{createtime,jdbcType=VARCHAR},
		#{lastlogintime,jdbcType=VARCHAR},
		#{tilepath,jdbcType=VARCHAR})
	</insert>
	<insert id="insertSelective" parameterType="com.xuebaosoft.mybatis3.mybatis_mapper.model.Users">
		insert into users
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="id != null">
				id,
			</if>
			<if test="username != null">
				username,
			</if>
			<if test="password != null">
				password,
			</if>
			<if test="name != null">
				name,
			</if>
			<if test="nickname != null">
				nickname,
			</if>
			<if test="sex != null">
				sex,
			</if>
			<if test="picture != null">
				picture,
			</if>
			<if test="createtime != null">
				createtime,
			</if>
			<if test="lastlogintime != null">
				lastlogintime,
			</if>
			<if test="tilepath != null">
				tilepath,
			</if>
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="id != null">
				#{id,jdbcType=VARCHAR},
			</if>
			<if test="username != null">
				#{username,jdbcType=VARCHAR},
			</if>
			<if test="password != null">
				#{password,jdbcType=VARCHAR},
			</if>
			<if test="name != null">
				#{name,jdbcType=VARCHAR},
			</if>
			<if test="nickname != null">
				#{nickname,jdbcType=VARCHAR},
			</if>
			<if test="sex != null">
				#{sex,jdbcType=VARCHAR},
			</if>
			<if test="picture != null">
				#{picture,jdbcType=VARCHAR},
			</if>
			<if test="createtime != null">
				#{createtime,jdbcType=VARCHAR},
			</if>
			<if test="lastlogintime != null">
				#{lastlogintime,jdbcType=VARCHAR},
			</if>
			<if test="tilepath != null">
				#{tilepath,jdbcType=VARCHAR},
			</if>
		</trim>
	</insert>
	<update id="updateByPrimaryKeySelective" parameterType="com.xuebaosoft.mybatis3.mybatis_mapper.model.Users">
		update users
		<set>
			<if test="username != null">
				username = #{username,jdbcType=VARCHAR},
			</if>
			<if test="password != null">
				password = #{password,jdbcType=VARCHAR},
			</if>
			<if test="name != null">
				name = #{name,jdbcType=VARCHAR},
			</if>
			<if test="nickname != null">
				nickname = #{nickname,jdbcType=VARCHAR},
			</if>
			<if test="sex != null">
				sex = #{sex,jdbcType=VARCHAR},
			</if>
			<if test="picture != null">
				picture = #{picture,jdbcType=VARCHAR},
			</if>
			<if test="createtime != null">
				createtime = #{createtime,jdbcType=VARCHAR},
			</if>
			<if test="lastlogintime != null">
				lastlogintime = #{lastlogintime,jdbcType=VARCHAR},
			</if>
			<if test="tilepath != null">
				tilepath = #{tilepath,jdbcType=VARCHAR},
			</if>
		</set>
		where id = #{id,jdbcType=VARCHAR}
	</update>
	<update id="updateByPrimaryKey" parameterType="com.xuebaosoft.mybatis3.mybatis_mapper.model.Users">
		update users
		set username = #{username,jdbcType=VARCHAR},
		password = #{password,jdbcType=VARCHAR},
		name = #{name,jdbcType=VARCHAR},
		nickname = #{nickname,jdbcType=VARCHAR},
		sex = #{sex,jdbcType=VARCHAR},
		picture = #{picture,jdbcType=VARCHAR},
		createtime = #{createtime,jdbcType=VARCHAR},
		lastlogintime = #{lastlogintime,jdbcType=VARCHAR},
		tilepath = #{tilepath,jdbcType=VARCHAR}
		where id = #{id,jdbcType=VARCHAR}
	</update>

	<select id="userPagingList" parameterType="map"
		resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from users limit #{offset},
		#{pageSize}
	</select>
</mapper>

6.junit进行测试,

package com.xuebaosoft.mybatis3.mybatis_mapper;

import java.util.List;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import com.xuebaosoft.mybatis3.mybatis_mapper.model.Users;
import com.xuebaosoft.mybatis3.mybatis_mapper.service.UserService;
import com.xuebaosoft.mybatis3.mybatis_mapper.service.impl.UserServiceImpl;


public class AppTest extends TestCase {
	public AppTest(String testName) {
		super(testName);
	}

	public static Test suite() {
		return new TestSuite(AppTest.class);
	}

	public void testApp() {
		UserService userService = new UserServiceImpl();
//		Users user = new Users("123321", "zhangsan", "111111", "name",
//				"nickname", "sex", "picture", "createtime",
//				"lastlogintime", "tilepath");
//		userService.update(user);
		
		Users user = userService.getUserById("123321");
		System.out.println(user);

		List<Users> list = userService.getUsers(0, 10);
		System.out.println(list);
	}
}


7.备注,如果增加一个业务,如图,

使用mybatis3--mapping文件方式

则需要增加的配置如下,

你可能感兴趣的:(Mybatis3,mapping)