MyBatis主要的类层次结构(Mybatis工具类)

MyBatis主要的类层次结构

每一个MyBatis的应用程序都以一个SqlSessionFactory 对象的实例为核心 。

SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得 。

SqlSessionFactoryBuilder对象可以从 XML 配置文件中构建 SqlSessionFactory对象。

java 复制代码
package org.example.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MybatisUtil {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}

通过SqlSessionFactory对象,可以获得SqlSession的实例。

SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法。你可以用 SqlSession 实例来直接执行已映射的 SQL 语句 。

第一个MyBatis程序

创建实体类User和映射器接口
MyBatis中使用Mapper接口的具体要求:

Mapper接口的全限定名为映射文件的namespace的值

Mapper接口的方法名称和映射文件中定义的每个sql的id相同

Mapper接口的方法参数和映射文件中定义每个sql的parameterType类型相同 Mapper接口的方法返回的单个对象类型和映射文件中定义的每个sql的resultType类型相同

创建MyBatis的主配置文件mybatis.xml

创建MyBatis的主配置文件mybatis.xml 在工程中新建Source Folder命名为resources来专门存放MyBatis的主配置文件,在resources中新建XML File命名为mybatis.xml

创建MyBatis的SQL映射XML文件

创建MyBatis的SQL映射XML文件,并且映射文件要同刚才创建的映射器接口在同一包中,与映射器接口命名也相同,所以映射文件名为UserMapper.xml

注意:要将映射文件关联到主配置文件

将SQL映射文件与主配置文件进行关联
html 复制代码
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
    <environments default="development"> 
        <!-- 事务和数据源 -->
    </environments> 
    <mappers> 
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>    
    </mappers> 
</configuration>

映射器(mappers)用来配置多个映射文件的位置, 有多种配置方式。

html 复制代码
<!-- 使用相对于类路径的资源引用 --> 
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
 
<!-- 使用映射器接口的完全限定类名 --> 
<mapper class="org.mybatis.builder.AuthorMapper"/> 

<!-- 将包内的映射器接口全部注册为映射器 --> 
<package name="org.mybatis.builder"/>
编写代码进行测试
java 复制代码
SqlSession session = MyBatisUtil.openSqlSession();
List<User> users = session.selectList("com.mybatis.mapper.UserMapper.selectAllUsers");
for(User u : users) {
    System.out.println(u);
}
session.close();
相关推荐
她的男孩14 小时前
权限通了、列表有数,一点分页就炸Forge Admin 用 COUNT(1) 扛住复杂待办
java·spring boot·mybatis
paopaokaka_luck1 天前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
大牧师1 天前
Mybatis 框架教程
java·数据库·mybatis·数据持久化·orm
代码什么用2 天前
MyBatis使用PageHelper && MyBatis的注解式开发
mybatis
VX_bysjlw9852 天前
数码设备销售网站设计与实现39138-计算机毕设原创(免费领源码+带部署教程)
java·vue.js·spring boot·mysql·tomcat·mybatis·idea
天空鸟_时光不老3 天前
13-亮点提炼:把技术说辞翻译成业务价值
java·spring boot·spring·spring cloud·mybatis
禾小西4 天前
Redis AOF 日志:宕机了,如何避免数据丢失?
java·redis·mybatis
天空鸟_时光不老4 天前
09-RAG问答系统落地:从默认分割器的坑到Milvus召回调优
java·人工智能·spring boot·spring·spring cloud·maven·mybatis
西凉的悲伤4 天前
MyBatis 中 association 与 collection 详解
java·mybatis
天空鸟_时光不老4 天前
10-Agent安全隐患与SQL执行层加固
java·数据库·人工智能·sql·spring·maven·mybatis