Mybatis核心API介绍(九)

简介: Mybatis核心API介绍(九)

MyBatis是一个基于Java的持久层框架,它提供了一组核心API用于执行SQL操作、构建数据库连接、管理事务等。以下是MyBatis的核心API介绍:

 

SqlSessionFactory:

SqlSessionFactory是MyBatis的核心接口之一,用于创建SqlSession对象。

它是MyBatis应用程序与数据库之间的一个重要的工厂类,负责创建数据库连接并管理配置信息。

通常,SqlSessionFactory是通过MyBatis的配置文件(mybatis-config.xml)构建的。


SqlSession:

SqlSession是MyBatis与数据库交互的主要接口,用于执行SQL语句、管理事务等数据库操作。

它提供了各种查询、插入、更新、删除等方法,通过这些方法可以执行SQL语句并返回结果。

SqlSession是线程不安全的,通常情况下,每个请求或线程应该有自己的SqlSession实例。


Mapper接口:

Mapper接口是MyBatis的另一个核心概念,它用于定义SQL映射方法,实现了数据库操作的解耦。

通过定义一个Java接口,然后使用@Select、@Insert、@Update、@Delete等注解或者XML映射文件来描述SQL语句。

MyBatis会根据Mapper接口的方法名和参数,动态生成对应的SQL语句并执行。


Configuration:

Configuration是MyBatis的全局配置类,包含了MyBatis的所有配置信息。

它包含了数据库连接信息、缓存配置、插件配置、TypeHandler注册、映射器(Mapper)注册等核心配置。

Configuration可以通过SqlSessionFactoryBuilder从XML配置文件中加载,并最终构建一个SqlSessionFactory。


MapperRegistry:

MapperRegistry是MyBatis用于管理Mapper接口的注册类,它将Mapper接口与MapperProxyFactory(Mapper代理工厂)关联起来,实现Mapper接口的动态代理。


Executor:

Executor是MyBatis执行器接口,负责执行SQL语句并处理数据库操作。

MyBatis中有三种执行器类型:SimpleExecutor、ReuseExecutor和BatchExecutor,分别对应不同的SQL执行策略。


TypeHandler:

TypeHandler是MyBatis用于处理Java对象与数据库之间的类型转换的接口。

MyBatis提供了许多默认的TypeHandler用于处理常见的数据类型,也可以自定义TypeHandler来处理特殊的数据类型。

以上是MyBatis的一些核心API,它们共同组成了MyBatis框架的基础,用于实现Java应用程序与数据库之间的数据交互。使用这些API,您可以更加灵活和高效地进行数据库操作。可以看得出来,很多类的命名跟配置文件里的标签是匹配的。

 

SqlSessionFactory和SqlSession是MyBatis中两个重要的核心接口,用于构建数据库连接和执行SQL操作。它们在MyBatis中扮演着重要的角色,下面对它们进行重点介绍和使用方法:

 

SqlSessionFactory:

SqlSessionFactory是MyBatis的工厂类,用于创建SqlSession对象。

它负责管理MyBatis的配置信息,包括数据库连接信息、插件配置、映射器(Mapper)注册等。

SqlSessionFactory的实例通常是全局唯一的,应该在应用程序启动时构建,并在整个应用程序的生命周期内重用。

使用方法:

 

创建SqlSessionFactory:通常,SqlSessionFactory是通过SqlSessionFactoryBuilder从MyBatis的配置文件中加载的。例如:

Stringresource="mybatis-config.xml";
InputStreaminputStream=Resources.getResourceAsStream(resource);
SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);

 

SqlSession:

SqlSession是MyBatis与数据库交互的主要接口,用于执行SQL语句、管理事务等数据库操作。

它提供了各种查询、插入、更新、删除等方法,通过这些方法可以执行SQL语句并返回结果。

SqlSession是线程不安全的,通常情况下,每个请求或线程应该有自己的SqlSession实例。

使用方法:

获取SqlSession:通常通过SqlSessionFactory的openSession()方法获取SqlSession实例,如下所示:

SqlSessionsqlSession=sqlSessionFactory.openSession();

执行SQL操作:通过SqlSession的方法执行SQL操作。例如,使用Mapper接口的方式执行SQL操作:

UserMapperuserMapper=sqlSession.getMapper(UserMapper.class);
Useruser=userMapper.getUserById(1);

提交事务:如果需要使用事务,可以通过SqlSession的commit()方法提交事务。

关闭SqlSession:执行完数据库操作后,需要关闭SqlSession,释放资源。通常使用close()方法来关闭SqlSession:

sqlSession.close();

请注意,在使用SqlSession时,应该确保正确地管理数据库连接和事务,尤其是在多线程或者并发场景下,确保每个请求或线程有独立的SqlSession实例,并正确地开启、提交或回滚事务。

 

总结:SqlSessionFactory用于创建全局唯一的SqlSession实例,而SqlSession则是与数据库交互的主要接口,负责执行SQL语句和管理事务。使用这两个接口,可以高效地进行数据库操作,实现Java应用程序与数据库之间的数据交互。一般这一块都是统一封装,不需要直接去考虑的。只需要配制好一些数据库和配置文件的信息,直接使用封装的代码去实现curd即可。

目录
相关文章
|
18天前
|
XML Java 数据库连接
MyBatis深入探索:原生API与注解方式实现CRUD操作
MyBatis深入探索:原生API与注解方式实现CRUD操作
89 0
|
8月前
|
Java 数据库连接 API
22MyBatis - MyBatis相关API
22MyBatis - MyBatis相关API
24 0
|
10月前
|
Java 数据库连接 API
MyBatis核心Api
MyBatis核心Api
36 0
|
10月前
|
SQL Java 数据库连接
简单学会MyBatis原生API&注解
简单学会MyBatis原生API&注解
82 0
|
SQL XML Java
MyBatis的相关api以及配置解析
MyBatis的相关api以及配置解析
159 0
MyBatis的相关api以及配置解析
|
存储 安全 JavaScript
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(上)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(上)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(上)
|
存储 Java 数据库连接
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(中)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(中)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(中)
|
SQL 前端开发 Java
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(下)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(下)
【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势(下)
|
XML 缓存 Java
MyBatis 使用 Java API 详解(下)
MyBatis 很大程度简化了了代码,MyBatis 3 引入了很多重要的改进使得SQL映射更加优秀。
311 0
|
XML SQL 存储
MyBatis 使用 Java API 详解(上)
MyBatis 很大程度简化了了代码,MyBatis 3 引入了很多重要的改进使得SQL映射更加优秀。
190 0