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

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

接口开发的目的:

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

  • 简化后期执行SQL

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

需修改的地方:

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

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

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

<mappers>
    <!--<mapper resource="com/ambow/mapper/UserMapper.xml"/>-->
	<package name="com.foxbill.mapper">
<mappers>

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

    <build>
        <!--加入 resource 插件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

一、实现步骤

1、创建Mapper接口
package com.ambow.mapper;

import com.ambow.pojo.User;

import java.util.List;

public interface UserMapper {
    public List<User> selectUser();
    public List<User> searchUser(String keywords);
    public int insertUser(User user);
    public int updateUser(User user);
    public int deleteUser(int id);
}
2、修改mapper.xml文件中的namespace
<?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">
<!--MyBatis接口开发,需要修改namespace-->
<mapper namespace="com.ambow.mapper.UserMapper">
    <select id="selectUser" resultType="com.ambow.pojo.User">
        select * from tb_user
    </select>

    <select id="searchUser" resultType="com.ambow.pojo.User">
        select * from tb_user where username like '%${_parameter}%'
    </select>

    <!--新增用户-->
    <insert id="insertUser" parameterType="com.ambow.pojo.User">
        insert into tb_user values(null,#{username},#{password},#{gender},#{addr})
    </insert>

    <update id="updateUser" parameterType="com.ambow.pojo.User">
        update tb_user set username = #{username},password = #{password}, gender = #{gender},addr = #{addr}
        where id = #{id}
    </update>

    <delete id="deleteUser">
        delete from tb_user where id = #{id}
    </delete>

</mapper>
3、修改主配置文件中映射文件的路径
<mappers>
    <!--<mapper resource="com/ambow/mapper/UserMapper.xml"/>-->
    <package name="com.ambow.mapper"/>
</mappers>
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<User> list = userMapper.selectUser();
        for (User user : list) {
            System.out.println(user);
        }
      
    }

二、MyBatis动态代理原理

 

三、MyBatisX 插件

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

主要功能:

  • XML 和 接口方法 相互跳转

  • 根据接口方法生成 statement

安装:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肉肉肉肉肉肉~丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值