当前位置:主页 > java教程 > Mybatis接口实现sql执行

Mybatis如何通过接口实现sql执行原理解析

发布:2023-04-23 17:05:01 59


为网友们分享了相关的编程文章,网友饶鹏鹍根据主题投稿了本篇教程内容,涉及到mybatis、sql执行、mybatis接口、Mybatis接口实现sql执行相关内容,已被262网友关注,内容中涉及的知识点可以在下方直接下载获取。

Mybatis接口实现sql执行

使用过 mybatis 框架的小伙伴们都知道,mybatis 是个半 orm 框架,通过写 mapper 接口就能自动实现数据库的增删改查,但是对其中的原理一知半解,接下来就让我们深入框架的底层一探究竟

1、环境搭建

首先引入 mybatis 的依赖,在 resources 目录下创建 mybatis 核心配置文件 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 环境、事务工厂、数据源 -->
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"/>
            <dataSource type="UNPOOLED">
                <property name="driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
                <property name="url" value="jdbc:derby:db-user;create=true"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 指定 mapper 接口-->
    <mappers>
        <mapper class="com.myboy.demo.mapper.user.UserMapper"/>
    </mappers>

</configuration>

在 com.myboy.demo.mapper.user 包下新建一个接口 UserMapper

public interface UserMapper {
    UserEntity getById(Long id);
    void insertOne(@Param("id") Long id, @Param("name") String name, @Param("json") List<String> json);
}

在 resources 的 com.myboy.demo.mapper.user 包下创建 UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.myboy.demo.mapper.user.UserMapper">

    <select id="getById" resultType="com.myboy.demo.db.entity.UserEntity">
        select * from demo_user where id = #{id}
    </select>

    <insert id="insertOne">
        insert into demo_user (id, name, json) values (#{id}, #{name}, #{json})
    </insert>
</mapper>

创建 main 方法测试

try(InputStream in = Resources.getResourceAsStream("com/myboy/demo/sqlsession/mybatis-config.xml")){
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
    sqlSession = sqlSessionFactory.openSession();
    # 拿到代理类对象
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    # 执行方法
    UserEntity userEntity = mapper.getById(2L);
    System.out.println(userEntity);
    sqlSession.close();
}catch (Exception e){
    e.printStackTrace();
}

2、动态代理类的生成


参考资料

相关文章

  • springboot使用mybatis开启事务回滚

    发布:2023-04-14

    本文主要介绍了springboot使用mybatis开启事务回滚,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • MyBatis根据条件批量修改字段的方式

    发布:2023-03-28

    这篇文章主要介绍了MyBatis根据条件批量修改字段的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • MyBatis一级缓存需要注意的地方

    发布:2020-02-01

    这篇文章主要给大家介绍了关于MyBatis一级缓存避坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学


  • Mybatis-plus的selectPage()分页查询不生效问题解决

    发布:2023-03-04

    本文主要介绍了Mybatis-plus的selectPage()分页查询不生效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 详解如何使用MyBatis简化JDBC开发

    发布:2023-04-21

    JavaEE 企业级 Java 项目中的经典三层架构为表现层,业务层和持久层.MyBatis 对 JDBC 代码进行了封装,作为一款优秀的持久层框架,专门用于简化JDBC开发.本文主要介绍一下如何使用MyBatis简化JDBC开发,需要的可以参考一下


  • spring中使用mybatis plus连接sqlserver的方法实现

    发布:2022-10-26

    为网友们分享了关于spring的教程,这篇文章主要介绍了spring中使用mybatis plus连接sqlserver的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Mybatis sql与xml文件读取方法详细分析

    发布:2023-04-22

    这篇文章主要介绍了Mybatis sql与xml文件读取方法,在执行一个自定义sql语句时,dao对应的代理对象时如何找到sql,也就是dao的代理对象和sql之间的关联关系是如何建立的


  • Mybatis中自定义实例化SqlSessionFactoryBean问题

    发布:2023-03-23

    这篇文章主要介绍了Mybatis中自定义实例化SqlSessionFactoryBean问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论