MyBatis学习系列四:接口式编程

来源:互联网 发布:mac os x系统官方下载 编辑:程序博客网 时间:2024/06/14 21:17

1.引入Mapper接口
Mapper接口中的方法名必须和sql映射文件中的某id名一致

public interface UserMapper {    public List<User> queryUsers(@Param(value="name")String name,@Param(value="address")String address);}

采用注解方式传递多个参数
2.xml
修改namespace属性值为mapper接口的全类名
select语句id属性值和mapper接口中的方法名一致

<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"       "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"><mapper namespace="com.xiang.mapper.UserMapper">    <!-- 定义公共属性 -->    <sql id="userColumns"> id,name,address </sql>    <!-- 按条件动态查询 -->    <select id="queryUsers" resultMap="UserResult">        select <include refid="userColumns"/> from user        <where>            <if test="name != null and !&quot;&quot;.equals(name.trim())">                and name like '%' #{name} '%'            </if>            <if test="address != null and !&quot;&quot;.equals(address.trim())">                and address like '%' #{address} '%'            </if>        </where>    </select></mapper>

3.dao
通过SQLSession实例化UserMapper实例,通过UserMapper实例调用具体方法

public List<User> queryUsers(String name,String address){    List<User> users = new ArrayList<User>();    SqlSession sqlSession = null;    sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession();    if (sqlSession != null) {        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);        users = userMapper.queryUsers(name, address);        sqlSession.close();    }    return users;}

4.service
不需要对参数进行封装

public List<User> queryUsers(String name,String address){    UserDao userDao = new UserDao();    List<User> users = new ArrayList<User>();    users = userDao.queryUsers(name,address);    return users;}
0 0
原创粉丝点击