mybatis的mapper代理方法开发实现用户的增删改查

思路

程序员只需要写mapper接口(相当于dao接口)

mapper代理开发规范

1.程序员还需要编写mapper.xml映射文件
2.程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。


开发规范:
1、在mapper.xml中namespace等于mapper接口地址





<mapper namespace="cn.itcast.mybatis.mapper.UserMapper">
mapper>

2、mapper.java接口中的方法名和mapper.xml中statement的id一致

3、mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。

4、mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。

例如:


    
    
    <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
        SELECT * FROM USER WHERE id=#{value}
    select>

对应的mapper接口中的定义:

//根据id查询用户信息
    public User findUserById(int id) throws Exception;

总结:
以上开发规范主要是对下边类型的代码进行统一生成,也就是对原始dao开发的简化,去掉了一些模板代码等。

User user = sqlSession.selectOne(“test.findUserById”, id);
sqlSession.insert(“test.insertUser”, user);

…………


具体代码实现

UserMapper.java

public interface UserMapper {
    //根据id查询用户信息
    public User findUserById(int id) throws Exception;

}

UserMapper.xml




<mapper namespace="cn.itcast.mybatis.mapper.UserMapper">

    
    
    <select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
        SELECT * FROM USER WHERE id=#{value}
    select>
    mapper>

在SqlMapConfig.xml中加载mapper.xml

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

测试

@Test
    public void testFindUserById() throws Exception {

        SqlSession sqlSession = sqlSessionFactory.openSession();

        //创建UserMapper对象,mybatis自动生成mapper代理对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //调用userMapper的方法

        User user = userMapper.findUserById(1);

        System.out.println(user);


    }

你可能感兴趣的:(mybatis)