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>

 

 

 

 

 

 

posted @ 2020-12-07 18:43  寻梦君  阅读(2960)  评论(0编辑  收藏  举报