b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mybatis原理_mybatis和ibatis区别_mybatis基本工作原理(6)

电脑杂谈  发布时间:2017-04-08 21:01:09  来源:网络整理

Configurationconfiguration=parse();

//使用Configuration对象创建SqlSessionFactory

SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(configuration);

//使用MyBatis

SqlSessionsqlSession=sqlSessionFactory.openSession();

Listlist=sqlSession.selectList("com.foo.bean.BlogMapper.queryAllBlogInfo");

四、涉及到的设计模式

初始化的过程涉及到创建各种对象,所以会使用一些创建型的设计模式。在初始化的过程中,Builder模式运用的比较多。

对于创建SqlSessionFactory时,会根据情况提供不同的参数,其参数组合可以有以下几种:

由于构造时参数不定,可以为其创建一个构造器Builder,将SqlSessionFactory的构建过程和表示分开:

MyBatis将SqlSessionFactoryBuilder和SqlSessionFactory相互独立。mybatis原理

Builder模式应用2: 连接环境Environment对象的创建

在构建Configuration对象的过程中,XMLConfigParser解析 mybatis XML配置文件节点<environment>节点时,会有以下相应的代码:

privatevoidenvironmentsElement(XNodecontext)throwsException{

if(context!=null){

if(environment==null){

environment=context.getStringAttribute("default");

}

for(XNodechild:context.getChildren()){

Stringid=child.getStringAttribute("id");

//是和默认的环境相同时,解析之

if(isSpecifiedEnvironment(id)){

TransactionFactorytxFactory=transactionManagerElement(child.evalNode("transactionManager"));

DataSourceFactorydsFactory=dataSourceElement(child.evalNode("dataSource"));

DataSourcedataSource=dsFactory.getDataSource();

//使用了Environment内置的构造器Builder,传递id事务工厂和数据源

Environment.BuilderenvironmentBuilder=newEnvironment.Builder(id)

.transactionFactory(txFactory)

.dataSource(dataSource);

configuration.setEnvironment(environmentBuilder.build());

}

}

}

}

在Environment内部,定义了静态内部Builder类:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40254-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 元文宗图帖睦尔
      元文宗图帖睦尔

      无论硬件有多先进了都不要骄傲

    • 孙彤
      孙彤

      美国也到倒退80年

    热点图片
    拼命载入中...