MyBatis核心SqlSessionFactory的创建_DAO的博客-程序员秘密

技术标签: mybatis  MyBatis  Mybatis  

SqlSessionFactory是每个MyBatis应用的核心

 

其实现方式有两种,使用配置文件或使用JAVA编码。

 

1.配置文件实现

Xml代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>    
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"    
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  4.   
  5. <configuration>  
  6.     <environments default="development">  
  7.         <environment id="development">  
  8.             <transactionManager type="JDBC" />  
  9.             <dataSource type="POOLED">  
  10.                 <property name="driver" value="${driver}" />  
  11.                 <property name="url" value="${url}" />  
  12.                 <property name="username" value="${username}" />  
  13.                 <property name="password" value="${password}" />  
  14.             </dataSource>  
  15.         </environment>  
  16.     </environments>  
  17.        
  18.     <mappers>  
  19.         <mapper resource="org/mybatis/example/BlogMapper.xml" />  
  20.     </mappers>  
  21.        
  22. </configuration>   

 使用时利用下面代码进行初始化

Java代码 复制代码  收藏代码
  1. String resource = "org/mybatis/example/Configuration.xml";    
  2. Reader reader = Resources.getResourceAsReader(resource);    
  3. SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);  
String resource = "org/mybatis/example/Configuration.xml"; 
Reader reader = Resources.getResourceAsReader(resource); 
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
 

2.使用编码实现

Java代码 复制代码  收藏代码
  1. DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",   
  2.                         "jdbc:mysql://localhost/mybatis?userUnicode=true&amp;characterEncoding=utf8""admin""123456");   
  3.         Environment environment = new Environment("test"new JdbcTransactionFactory(), dataSource);   
  4.         Configuration configuration = new Configuration(environment);   
  5.         configuration.addMapper(TestDao.class);   
  6.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);  
DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
                        "jdbc:mysql://localhost/mybatis?userUnicode=true&amp;characterEncoding=utf8", "admin", "123456");
        Environment environment = new Environment("test", new JdbcTransactionFactory(), dataSource);
        Configuration configuration = new Configuration(environment);
        configuration.addMapper(TestDao.class);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

 

 

生命同期问题

SqlSessionFactoryBuilder 是用过即丢,其生命周期只存在于方法体内

SqlSessionFactory 单例,存在于整合应用运行时

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a15084903295/article/details/8608404

智能推荐

【AIOT】蓝牙调研_路途…的博客-程序员秘密

低功耗蓝牙(BluetoothLow Energy),简称BLE。蓝牙低能耗无线技术利用许多智能手段最大限度地降低功耗。单模芯片和双模芯片。蓝牙单模器件是蓝牙规范中新出现的一种只支持蓝牙低能耗技术的芯片——是专门针对ULP操作优化的技术的一部分。蓝牙单模芯片可以和其它单模芯片及双模芯片通信,此时后者需要使用自身架构中的蓝牙低能耗技术部分进行收发数据。双模芯片也能与标准蓝牙技术及使用传统蓝牙架构的其它双模芯片通信。注:按应用可分为数据蓝牙模块和语音蓝牙模块。

恶意代码分析实战-高级_amingMM的博客-程序员秘密

QQ 1274510382Wechat JNZ_aming商业联盟 QQ群538250800技术搞事 QQ群599020441解决方案 QQ群152889761加入我们 QQ群649347320共享学习 QQ群674240731纪年科技aming网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。纸上得来终觉浅,绝知此事要躬行 !!!寻找志同道合伙伴创业中。。。抱团滴滴联系方式!!恶意代码分析 高级分析恶意代码 采取 对抗机制。包括反汇编、反调试、反虚..

传新版支持光追的 MikuMikuDance 正由另一人研发——MikuMikuDance 2 Project_mmd 源码_wujiuqier的博客-程序员秘密

翻译自 https://www.tamafutoshi.net/mmd2.html项目介绍最近更新:2022/01/09欢迎来到下一代 MMD 项目:为每个人准备的新的 3D 操场。MMD2 是完全从头开始构建的,这充分表明我们拥有完整的软件底层控制。我们想要什么功能就可以创建什么功能。不需要计算机图形学的专业知识,到时候会有专门的教程。您可以创建自己的渲染资源或使用每个人共享的资源。渲染资源可以是任意内容,从图像、音乐文件,到模型、着色器或者舞台……重要通知我们这个 MMD2 并不是原来 MM

解决java.lang.NoSuchFieldError: SMALLER_BIG_BLOCK_SIZE_DETAILS问题_kettle poi包_张宜强的博客-程序员秘密

今天在使用Kettle的时候报错:java.lang.NoSuchFieldError:SMALLER_BIG_BLOCK_SIZE_DETAILS原因是poi包冲突,有一个3.6版本和3.9版本,删除3.6版本后重启kettle不报错;解决办法:搜索poi包,删除低版本,保留最高版本即可。...

【转载】Windows10用fiddler抓包Android应用(解决手机设置代理后无法上网,设置只抓app包)_迷途无归的博客-程序员秘密

转载:https://blog.csdn.net/jianglianye21/article/details/81743129 1、环境准备1、电脑上安装fiddler 2、手机和电脑在同一个局域网内2、设置1.fiddler&amp;amp;amp;amp;amp;gt;Tools&amp;amp;amp;amp;amp;gt;Fiddler Options&amp;amp;amp;amp;amp;gt;Co

随便推点

Android专题之AsyncTask(二)简单AsyncTask例子解决线程阻塞_android 线程阻塞怎么解决_华哥折腾历险记的博客-程序员秘密

文章目录一、相关文章二、前言三、代码基本思路一、相关文章Android专题之AsyncTask(一)基本概念介绍Android专题之AsyncTask(二)简单AsyncTask例子解决线程阻塞Android专题之AsyncTask(三)异步方法操作之进度条二、前言在本系列的上一篇文章中,我们学习了AsyncTask的有关基本概念,相信应该有所了解了。还没......

Keras导入自定义metric模型报错: unknown metric function: Please ensure this object is passed to`custom_object‘_Regnaiq的博客-程序员秘密

Keras的模型自定义了metric或者loss,在保存成后h5的时候没有问题, 但是在使用load_model导入的时候却会报错:unknown metric function: HammingScore. Please ensure this object is passed to the custom_objects argument.这是因为自定义的参数没有传递进去. 有两个解决办法:如果只需要做预测, 不再训练, 则可以直接加compile = False:model = ker

Linux-网络 静态IP 关闭NetworkManager_Peradastra的博客-程序员秘密

如果使用静态ip,则不需要NetworkManager这个服务否则它会修改一些配置如/etc/resolv.conf导致外网不同 常见如:ping: www.baidu.com: Name or service not knownCentOS 7 关闭:systemctl stop NetworkManager # 临时关闭systemctl disable NetworkManager # 永久关闭网络管理命令 其余版本关闭命令不一样,具...

USB虚拟为网卡驱动程序_usb转网口有虚拟网卡吗_羽盛的博客-程序员秘密

最近在做一个USB网卡的程序, 其实并不是普通意义上的网卡,就是利用USB接口再通过USB连接线在两天机器上传输文件, .   我们的需求是一端是基于Linux内核的一个嵌入式系统另一端是WInxp.   Linux下有默认的驱动程序, 现在主要是写winxp下的驱动,  基于Winxp肯定要用DDK写了.   方法:1.  注册一个微端口2. 注册一个NIC, 并分配相关的资源;3. 初始化US

记录遥感影像分割_遥感图像分割_浩大的csdn的博客-程序员秘密

原文地址https://www.sohu.com/a/218292615_642762上两个月参加了个比赛,做的是对遥感高清图像做语义分割,美其名曰“天空之眼”。这两周数据挖掘课期末project我们组选的课题也是遥感图像的语义分割,所以刚好又把前段时间做的成果重新整理和加强了一下,故写了这篇文章,记录一下用深度学习做遥感图像语义分割的完整流程以及一些好的思路和技巧。数据集首先介...

maven依赖出现红色波浪线问题(idea)_CJM无限Coding的博客-程序员秘密

如图:解决办法:在pom.xml将对应依赖去除保存后再撤回,重新导入依赖,问题解决如图: