MyBatis相应API
1. SqlSessionFactoryBuilder(SqlSession工厂构建器):
-
常用API: SqlSessionFactory build(InputStream inputStream)
-
通过加载MyBatis核心文件的输入流的形式构建一个SqlSessionFactory对象
-
eg:
String resource = "sqlMapConfig.xml"; InputStream inputStream = Resources.getResourceAsStream(resource)l; SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(inputStream);
- Resources是一个工具类
- 全类名: org.apache.ibatis.io.Resources
- Resources类帮助你从类路径下, 文件系统或者一个webURL中加载资源文件
- 上面的String resource = "sqlMapConfig.xml"是一个相对路径, 我们此时是使用的maven方式创建的项目, 所以此时加载资源文件的相对路径是在resource包下
- Resources是一个工具类
-
-
2. SqlSessionFactory(SqlSession工厂对象):
- SqlSessionFactory有多个方法创建SqlSession实例, 常用的有如下两个:
- openSession()
- 会默认开启一个事物, 但事物不会自动提交, 也就意味着需要手动提交该事物, 更新操作数据才会持久化到数据库中
- openSession(boolean autoCommit)
- 参数是否为自动提交, 如果设置为true, 那么就不需要手动提交事物
- openSession()
其实openSession()方法底层就是调用的openSession(false)
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()
-
补充:
以流的方式加载文件的几种方式:
- this.getClass().getClassLoader().getResourceAsStream(String path)
- ServletContext.getResourceAsStream(String path)
- ServletContext类接口在Javax.servlet包下, 其实现类是由各大服务器厂商提供的, 我们目前只需过tomcat服务器厂商提供的ServletContext接口的实现类
- Resources.getResourceAsStream(String path)
- Resources是一个工具类, 是MyBatis提供的一个工具类, 是org.apache.ibatis.io包下的
- 注意: MyBatis和tomcat都是apache旗下的产品
- ibatis是MyBatis的前身, 就和java的前身是oak一样
- Resources是一个工具类, 是MyBatis提供的一个工具类, 是org.apache.ibatis.io包下的