您的位置:首页 > 移动开发

使用mybatis3--mapping文件方式

2015-09-17 00:00 561 查看
摘要: 使用mybatis3--mapping文件方式

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

2.给出目录结构,



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