Java课题笔记~ MyBatis接口开发(代理开发)

使用XML文件进行开发,在调用SqlSession进行操作时,需要指定MyBatis映射文件中的方法,这种调用方式过于烦琐。为解决此问题,MyBatis提供了接口开发的方式。

接口开发的目的:

  • 解决原生方式中的硬编码

  • 简化后期执行SQL

Java课题笔记~ MyBatis接口开发(代理开发)_第1张图片Java课题笔记~ MyBatis接口开发(代理开发)_第2张图片

使用和指定语句的参数和返回值相匹配的接口(比如 UserMapper.class),现在你的代码不仅更清晰,更加类型安全,还不用担心可能出错的字符串字面值以及强制类型转换。

需修改的地方:

1.在mapper文件夹下创建XxxMapper接口,并定义相应的抽象方法。

2.在mapper文件夹下创建映射文件XxxMapper.xml,并指定其namespace为对应Mapper接口的绝对路径。

3.在MyBatis主配置文件中,将mapper包下所有的Mapper接口引入


    
	

 4.在pom.xml中配置resource,指定打包资源,使mapper包中的映射文件可以被打包到classes中【另一种方式:也可以不做如下配置,而是把映射文件,放在resources对应的文件夹中】

    
        
        
            
                src/main/java
                
                    **/*.xml
                
            
        
    

一、实现步骤

1、创建Mapper接口

package com.ambow.mapper;

import com.ambow.pojo.User;

import java.util.List;

public interface UserMapper {
    public List selectUser();
    public List searchUser(String keywords);
    public int insertUser(User user);
    public int updateUser(User user);
    public int deleteUser(int id);
}

2、修改mapper.xml文件中的namespace





    

    

    
    
        insert into tb_user values(null,#{username},#{password},#{gender},#{addr})
    

    
        update tb_user set username = #{username},password = #{password}, gender = #{gender},addr = #{addr}
        where id = #{id}
    

    
        delete from tb_user where id = #{id}
    

3、修改主配置文件中映射文件的路径


    
    

4、测试接口开发

 

    @Test
    public void test() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //获取SqlSessionFactory - 工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//        System.out.println(sqlSessionFactory);
        //获取SqlSession - 连接对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List list = userMapper.selectUser();
        for (User user : list) {
            System.out.println(user);
        }
      
    }

二、MyBatis动态代理原理

Java课题笔记~ MyBatis接口开发(代理开发)_第3张图片

 

三、MyBatisX 插件

MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。

主要功能:

  • XML 和 接口方法 相互跳转

  • 根据接口方法生成 statement

安装:

Java课题笔记~ MyBatis接口开发(代理开发)_第4张图片

 

你可能感兴趣的:(Java,java,mybatis,笔记,Maven安装配置,MyBatis动态代理原理)