Mybatis中的三类数据源 UNPOOLED、POOLED 和 JNDI 的区别


1、mybatis中的数据源

mybatis连接池为我们提供了3种方式的配置:

  1. POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
  2. UNPOOLED:采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
  3. JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。

注意:如果不是web或者maven的war工程,JNDI是不能使用的。


2、在mybatis中配置数据源

2.1、POOLED数据源的配置方式

<dataSource type="POOLED">
       <property name="driver" value="com.mysql.jdbc.Driver"/>
       <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
       <property name="username" value="root"/>
       <property name="password" value="root"/>
 </dataSource>

 

2.2、UNPOOLED数据源的配置方式

<dataSource type="UNPOOLED">
           <property name="driver" value="com.mysql.jdbc.Driver"/>
           <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
           <property name="username" value="root"/>
           <property name="password" value="root"/>
</dataSource>

 

2.3、JNDI数据源的配置方式

将数据源的配置文件 context.xml 放到工程的webapp/META-INF/下

context.xml

<Resource   name="jdbc/mybatis" 数据源的名称   type="javax.sql.DataSource" 数据源类型   auth="Container" 数据源提供者   maxActive="20" 最大活动数   maxWait="10000" 最大等待时间   maxIdle="5" 最大空闲数   username="root" 用户名   password="1234" 密码   driverClassName="com.mysql.jdbc.Driver" 驱动类   url="jdbc:mysql://localhost:3306/mybatis" 连接url字符串 />

 

然后在mybatis的主配置文件中配置数据源,其中前缀"java:comp/env/ "是固定的,后缀 "jdbc/mybatis" 是在context.xml中取的JNDI数据源名称

<dataSource type="JNDI">
       <property name="data_source" value="java:comp/env/jdbc/mybatis"/>
</dataSource>

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM