mybatis 创建SqlSessionFactory

mybatis 创建SqlSessionFactory创建SqlSessionFactory有两种方式:一种是通过XML,另一种是通过Java代码。Stringresource="org/mybatis/example/mybatis-config.xml";InputStreaminputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSess…

大家好,又见面了,我是你们的朋友全栈君。

创建SqlSessionFactory有两种方式:一种是通过XML,另一种是通过Java代码。

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。给出一个简单的示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

不使用XML文件的方式如下:

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

SqlSessionFactoryBuilder类有很多个build方法,对应了不同的输入参数:

public SqlSessionFactory build(InputStream inputStream) { 
   
return build(inputStream, null, null);
}

public SqlSessionFactory build(InputStream inputStream, String environment) { 
   
return build(inputStream, environment, null);
}

public SqlSessionFactory build(InputStream inputStream, Properties properties) { 
   
return build(inputStream, null, properties);
}

public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { 
   
try { 
   
  XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
  return build(parser.parse());
} catch (Exception e) { 
   
  throw ExceptionFactory.wrapException("Error building SqlSession.", e);
} finally { 
   
  ErrorContext.instance().reset();
  try { 
   
    inputStream.close();
  } catch (IOException e) { 
   
    // Intentionally ignore. Prefer previous error.
  }
}
}

public SqlSessionFactory build(Configuration config) { 
   
return new DefaultSqlSessionFactory(config);
}
  • 总的来说分为两种输入参数,一种是为通过XML创建SqlSessionFactory服务,另一种是为完全通过Java代码创建SqlSessionFactory服务。从以上源码我们也能够看出,XML文件中的元素也对应着Java中的对象,例如properties。
  • 前面三种重载方法表明,当配置文件中全部信息都包含时,则使用只有InputStream一个参数的build方法,当XML文件中缺少哪个元素时,可以通过Java代码的方式创建并传入build方法中,比如可以传入properties,这样就能够实现数据库密码不被暴露。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137688.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 简单的关机程序(C语言)

    简单的关机程序(C语言)Windows系统自带一个名为Shutdown.exe的程序,可以用于关机操作(位置在Windows\System32下),一般情况下Windows系统的关机都可以通过调用程序shutdown.exe来实现的,同时该程序也可以用于终止正在计划中的关机操作。while循环实现:#include<stdio.h>#include<stdlib.h>intmain(){ charinput[20]={0}; system(“showdown-s-t60.

  • 电脑声音有回音 怎么弄回去啊 5

    电脑声音有回音 怎么弄回去啊 5

    2021年10月10日
  • UFT脚本[通俗易懂]

    UFT脚本[通俗易懂]SystemUtil.Run”C:\ProgramFiles(x86)\HP\UnifiedFunctionalTesting\samples\flight\app\flight4a.exe”使用Systemutil.Run打开订票程序Dialog(“Login”).WinEdit(“AgentName:”).Set”mercury”输入代理名称“mercury”Dialog(“

  • 浅谈UML的概念和模型之UML九种图

    浅谈UML的概念和模型之UML九种图

    2021年11月16日
  • 史上最强 Java 学习路线图!

    网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的。第一部分:Java基础篇这个阶段就是编程入门,掌握Java这门编程语言的基本语法,为后面的修行之路打好基础。包括的知识点有:环境搭建——IntellijIDEA一站式搞定Java基础语法面向对象——封装、继承、多态数组字符串集合框架IO反射注解网络编程并发编程这方面的资源我给大家梳理下:1)针对IntellijIDEA,GitHub上有一份简体中文版教

  • error: failed to push some refs to ‘git@gitee.com:xxx/xxx.git’ 问题 解决办法

    error: failed to push some refs to ‘git@gitee.com:xxx/xxx.git’ 问题 解决办法原因分析:本地和远程的文件应该合并后才能上传本地的新文件解决办法:1.gitpullgiteemaster先拉下来,自动合并(类似于SVN的update)2.gitpushgit

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号