核心对象的分类:
Resource:用来将核心配置对象解析成为流的形式
SqlSessionFactoryBuilder:用来解析核心配置文件并根据配置文件,生成SqlSessionFactory对象
SqlSessionFactory:根据传递的参数不同,用来创建不同的SqlSession对象
SqlSession:用来对话持久层和应用程序的中间件,是用来执行SQL语句的非常重要的部分。
核心对象的主要方法和参数:
Resource:
getReaourceAsSteam(“File”):将核心配置文件封装为为流的形式,作为参数传递给工厂类
SqlSessionFactoryBuilder:
build(InputSteam inoutsteam,String enviroment,Properties proerties):创建SqlSession对象的方法,第一个参数是核心配置文件流,第二个参数用来设置运行环境,第三个参数为外部的参数文件。后两个参数都是可以省略的。
SqlSessionFactory:
openSession:决定以何种形式创建SqlSession对象。当没有参数或者参数是一个布尔值的时候,表示开启一个事务,获取一个可执行的SqlSession对象。当参数为ExecutoType时,表示设置一个执行器,其中的可选值为:
ExecutoType.SIMPLE:表示为每一条SQL语句创建一条预处理的语句,无论是否相同,占用骄傲多资源
ExecutoType.REUSE:表示会复用预处理语句,每当执行预处理过的语句时将不会再进行预处理,比较节省资源
ExecutoType.BATCH:批量操作增删改
SqlSession:
SelectOne(String statment,Obiect parmeter):查询方法,返回的结果只能是一个或零个。statment是SQL映射文件中的唯一标识,parmeter是查询时需要传递的参数
selectList(String statment,Obiect parmeter):查询方法,返回的结果可以是一个或零个,也可以是多个,如果是多个,将会存储在数组中。
insert(String statment,Object parmeter):插入方法
delete(String statment,Object parmeter):删除方法
update(String statment,Object parmeter):更新方法
comment():手动提交事务方法
rellback():手动回滚事务方法
close():关闭连接,释放资源方法
<T> T getMapper(class <T> type):该方法会返回Mapper接口所映射的代理对象,该对象关联了Session对象,开发人员可以使用该对象直接调用相应的方法操作数据库。
getConnection():获取JDBC数据库连接对象的方法
核心对象的使用:
核心对象的基本使用顺序就是:
1.首先使用Resource对象将核心配置文件的配置信息封装在流中
2.将流对象作为参数传递给SqlSessionFactoryBuilder的build方法,创建出SqlSessionFactory对象
3.通过SqlSessionFactory的openSession方法创建出对应的SqlSession对象
4.使用SqlSession方法执行映射文件中的SQL语句
测试MyBatis配置文件的正确性:
在之前我们已经编写好了所有我们需要使用的配置文件,接下来就是使用对象和方法将这些配置文件调用起来,测试一下能否通过这些文件查询出我们想要的数据:
首先我们创建一个Java类,然后在里面编写相关的代码,并按照上面我们写的顺序使用MyBatis的核心类:
正确写完之后,我们就可以运行程序得出结果:
如果不确定是否正确,可以在数据库中单独运行SQL语句查看是否正确。
最终的结果是正确的,说明我们的配置没有问题。详细代码如下:
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.InputStream;
public class Test {
public static void main(String[] args) throws Exception{
// 1.将核心配置文件封装成流的形式
InputStream stream = Resources.getResourceAsStream("mybatis.xml");
// 2.将流对象作为参数传递给SqlSessionFactoryBuilder的build方法,创建出SqlSessionFactory对象
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(stream);
// 3.通过SqlSessionFactory的openSession方法创建出对应的SqlSession对象
SqlSession session = build.openSession(true);
// 4.使用SqlSession方法执行映射文件中的SQL语句,这里的参数是由SQl映射文件中的命名空间.SQL语句唯一标识组成的
int o = session.selectOne("Mappers.selectOne");
// 最终输出查询的结果,我们查询的是所有的行数,所以结果是正确的
System.out.println(o);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153324.html