Mapper映射器及其接口规则

1、Mapper映射器及其接口规则

(1)根据SQL定义的id属性作为接口的方法名

(2)根据SQL定义的parameterType类型作为方法的参数类型

(3)根据SQL定义的resultTyoe类型,定义方法的返回类型,多行使用List<类型>,单行直接使用类型

(4)将SQL定义文件中<mapper>的namespace属性指定为包名.接口名

例如:我们有一个Mapper.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">
        
<!-- namespace名字与全限定接口名一致 -->
<mapper namespace="com.zlc.dao.UserDao">
   <!-- id对应接口的方法名 -->
   <select id="findAll" resultType="com.zlc.entity.User">
      select * from user
   </select>  
   
   <!-- 带一个参数的查询 -->
   <select id="findByName" parameterType="java.lang.String" 
   resultType="com.zlc.entity.User">
      select * from user where user_name = #{name}
   </select>
   
   <insert id="addUser" parameterType="map">
       insert into user (user_name,age,salary) values (#{user_name},#{age},#{salary});
   </insert>
   
   <delete id="removeUser" parameterType="int">
       delete from user where user_id = #{user_id}
   </delete>
   
   <update id="updateUser" parameterType="map">
       update user set salary = #{salary} where user_id = #{user_id}
   </update>
   

</mapper>

根据xml文件定义一个接口:

package com.zlc.dao;

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

import com.zlc.entity.User;

public interface UserDao {
    
   public List<User> findAll();
   
   public User findByName();
   
   public int addUser(Map map);
   
   public int removeUser(Integer user_id);
   
   public int updateUser(Map map);
}

测试类:

public static void main(String[] args) throws IOException {
        String conf = "mybatis-config.xml";
        InputStream is = Resources.getResourceAsStream(conf);
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = ssf.openSession();
        //将根据接口直接生成一个实例对象
        UserDao userDao = session.getMapper(UserDao.class);
        List<User> list = userDao.findAll();
        for(User u : list) {
            System.out.println(u.getUser_name());
        }
        session.close();
    }

 

posted @ 2018-08-06 09:38  梦里下起了雪  阅读(815)  评论(0编辑  收藏  举报