当前位置:编程学堂 > 绝对资料丰富,超全面讲解MyBatis动态代理原理!

绝对资料丰富,超全面讲解MyBatis动态代理原理!

  • 发布:2023-10-06 07:17

点击关注公众号,实用技术文章随时了解


1.Mybatis介绍

MyBatis是一个ORM工具,封装了JDBC操作,简化了业务编程;

Mybatis在Web项目中与spring集成,为业务提供读写数据库的能力。

2。使用步骤

1.引入依赖

使用Maven包依赖管理,mybatis-3.5.5版本;还需要数据库连接驱动

<依赖>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<版本>3.5.5版本>
依赖>
<依赖>
<groupId>MySQLgroupId>
        <artifactId>mysql-connector-javaartifactId>
<版本>5.1.49版本>
依赖项>

2。配置文件

配置文件配置数据库连接源和映射文件。


配置 PUBLIC "-//www.sychzs.cn//DTD Config 3.0//EN"  "http:// www.sychzs.cn/dtd/mybatis-3-config.dtd">
 
<配置>
    <环境  默认= “开发”>
        <环境 id=“开发”>
            <transactionManager 类型="JDBC" />
            
            <数据源  类型=“POOLED”>
                <属性 名称=“驱动程序” = “com.mysql.jdbc.驱动程序” />
<属性 名称="url" 值 ="jdbc:mysql://localhost/user"/ >
                <属性 名称=“用户名”  =“根” />
<属性 名称=“密码” 值 ="123456"/>
数据源>

环境>

环境 >


<映射器 ? />
映射器>


配置>

3.接口定义

定义实体

package com.xiongxin.mybatis.entity;

public class 用户 {

private 字符串用户名;
private 字符串密码;
...getter&&setter
}

接口定义

package com.xiongxin.mybatis.mapper;
importcom.xiongxin.mybatis.entity.User;
importjava.util.列表;
公开 接口 UserMapper {
列表 queryUser();
}

定义映射文件


mapper
        PUBLIC "-//www.sychzs.cn//DTD Mapper 3.0 //CN"
        "http:// www.sychzs.cn/dtd/mybatis-3-mapper.dtd">
 
<mapper 命名空间= "com.xiongxin.mybatis.mapper.UserMapper" >
 
    <选择 id="queryUser" resultType="com.xiongxin. mybatis.entity.User">
        从 tbl_user
    选择>
  映射器>

4.加载加载

 com.xiongxin.mybatis;
 
导入 com.alibaba.fastjson.JSON;
导入  com.xiongxin.mybatis.entity.User;
导入 com.xiongxin.mybatis.mapper.UserMapper;
导入 www.sychzs.cn.资源;
导入 org.apache.ibati s.session.SqlSession;
导入 org.apache.ibatis.session.SqlSessionFactory;
导入 org.apache.ibatis.session.SqlSessionFactoryBuilder;
 
导入java.io.IOException;
导入java.io.Reader;
导入java.util.List;

公共 TestMain{
 
    公共 静态  void main(String[] args) 抛出 IOException 
{
        字符串资源= “mybatis-config.xml”;
        //加载mybatis的配置文件(它也加载关联的映射文件)
        Reader reader = Resources.getResourceAsReader(resource);
        //构建sqlSession的工厂
        SqlSsessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//在可执行映射文件中创建sql sqlSession
SqlSession session = sessionF actory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
 ​List users = userMapper.queryUser( );
System.out.println(JSON .toJSONString(users));
}

}
---------------------------- ----
..控制台打印..
[{"密码":"密码", “用户名”:“雄心”}]

到这里Mybatis的使用就结束了。

整个实现过程中,我们并没有编写Mapper的实现类。在没有实现类的场景下,框架如何实现接口方法返回呢?

这里就不得不说一下接口的动态代理方法了。

3。原理分析

来源:www.sychzs.cn/tsxiong123/article/

详情/119057825

推荐

java面试题宝典

技术内卷群,一起来学习!!

PS:因为公众号平台更改了推送规则,如果不想错过内容,看完后记得点击“在看”,并添加一个” star”,这样每次推送新文章都会立即出现在你的订阅列表中。 点击“观看”支持我们!

相关文章

最新资讯