MyBatis的相应API
MyBatis 是一个优秀的持久层框架,其核心 API 围绕 SQL 会话管理、Mapper 接口绑定和 SQL 执行展开。
1.SqlSession工厂构建器SqlSessionFactoryBuilder
常用API:SqlSessionFactory build(inputStream inputStream)
通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlsessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSSessionFactory factory = builder.build(inputStream);
其中,Resources工具类帮助你从类路径下、文件系统或一个web URL中加载资源文件。
- 作用:解析配置文件(mybatis-config.xml)或Java配置,生成SqlSessionFactory。
- 生命周期:临时对象,构建完SqlSessionFactory后即可销毁。
2.SqlSession工厂对象SqlSessionFactoty
- 作用:创建SqlSession对象实例,是MyBatis的核心对象。
- 生命周期:应用运行期间全局单例,避免重复创建。
- 创建SqlSession:
// 自动提交事务(不推荐,需显式控制事务)
//参数为是否自动提交,如果设置为true,那么不需要手动提交事务
SqlSession session = sqlSessionFactory.openSession(true);
// 手动提交事务(推荐)
//会默认开启一个事务,但事务不会自动提交,也就意味着需要手动提交该事务,更新操作数据才会持久化到数据库中
SqlSession session = sqlSessionFactory.openSession();
3.SqlSession会话对象
- 作用:执行SQL,获取Mapper接口实例,管理事务。
- 关键方法:
// 查询单条记录
User user = session.selectOne("com.example.mapper.UserMapper.selectById", 1);
// 查询列表
List<User> users = session.selectList("com.example.mapper.UserMapper.selectAll");
// 插入数据
int rows = session.insert("com.example.mapper.UserMapper.insert", newUser);
// 更新数据
int rows = session.update("com.example.mapper.UserMapper.update", user);
// 删除数据
int rows = session.delete("com.example.mapper.UserMapper.delete", 1);
// 提交事务
session.commit();
// 回滚事务
session.rollback();
// 关闭会话(必须!)
session.close();
配置与工具类:配置文件示例(mybatis-config.xml)
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 下划线转驼峰 -->
</settings>
<environments default="development">
<environment name="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
总结:
-
核心步骤:
- 通过
SqlSessionFactoryBuilder
构建SqlSessionFactory
。 - 从
SqlSessionFactory
获取SqlSession
。 - 使用
SqlSession
执行 SQL 或获取Mapper
接口实例。
- 通过