MyBatis相应API

1.SqlSession工厂构建器SQLSessionFactoryBuilder

常用API:SqlSessionFactory build(InputStream inputStream)

通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象

        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        // 获得sqlSession工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

其中,Resources工具类,这个类在org.apache.ibatis.io包中,Resources类帮助我们从类路径下、文件系统或一个web URL中加载资源文件。

2.SqlSession工厂对象SqlSessionFactory

SqlSessionFactory有多个方法创建SqlSession实例,常用的有两个:

方法解释
openSession()会默认开启一个事务,但事务不会自动提交,也就意味着需要手动提交事务,更新操作数据才会持久化到数据库中
openSession(boolean autoCommit)参数为是否自动提交,如果设置为true,那么不需要手动提交事务

3.SqlSession回话对象

SqlSession实例在MyBatis中是非常强大的一个类。在这里我们会看到所有 执行语句、提交或回滚事务和获取映射器实例的方法。执行语句的方法主要有:

<T> T selectOne(String statement,Object parameter)
<E> List<E> selectList(String statement, Object parameter)
int insert(String statement,Object parameter)
int update(String statement,Object parameter)
int delete(String statement,Object parameter)

操作事务的方法主要有:

void commit()
void rollback()

### MyBatis 常用 API 及其使用方法 #### SqlSessionFactoryBuilder 构建 SQLSessionFactory 实例 `SqlSessionFactoryBuilder` 是用于创建 `SQLSessionFactory` 的工具类。通过读取配置文件或直接传入配置信息来构建会话工厂。 ```java InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); ``` 此过程初始化了整个框架的核心组件,包括数据源、事务管理器以及映射器注册表等[^3]。 #### 获取 SqlSession 对象 一旦拥有了 `SQLSessionFactory`,就可以从中获取到 `SqlSession` 来执行数据库操作: ```java try (SqlSession session = sqlSessionFactory.openSession()) { // 使用session进行增删改查... } ``` 这一步骤非常重要,因为所有的 CRUD 操作都需要依赖于这个临时性的会话对象完成[^1]。 #### Mapper 接口定义与调用 为了简化开发流程并提高代码可维护性,MyBatis 支持基于接口的方式访问数据库资源。开发者只需要声明一个简单的 DAO 或者 Repository 层接口即可实现复杂的数据交互需求。 对于自定义的 mapper 文件来说,通常会在 Java 中定义相应的接口,并指定具体的命名空间以便匹配 XML 映射文档中的语句ID: ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.dao.UserDao"> <!-- 查询单个用户记录 --> <select id="getUserById" resultType="User"> SELECT * FROM users WHERE id=#{id}; </select> </mapper> ``` 相应地,在Java端则有如下形式的方法签名: ```java public interface UserDao { /** * 根据主键查询用户实体. */ User getUserById(int id); } ``` 当应用程序运行时,只要提供了正确的参数值给定的方法名就能自动找到对应的 SQL 片段去执行实际的操作[^5]。 #### 插件机制简介 值得注意的是,虽然插件可以极大地扩展系统的灵活性和功能性,但在不了解内部运作细节的情况下随意引入第三方库可能会带来意想不到的风险。因此建议使用者充分理解官方文档后再考虑是否采用此类特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Caoyy686868

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

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

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

打赏作者

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

抵扣说明:

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

余额充值