JNDI数据源
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
JNDI数据结构 – Map
结构 (模仿Windows
注册表结构)
Windows
注册表结构
key : 路径 + 名称 | value : 数据值 (对象) |
---|---|
计算机\HKEY_CURRENT_USER\AppEvents\EventLabels.Default + DispFileName | @mmres.dll,-5824 |
计算机\HKEY_CURRENT_USER\AppEvents\EventLabels\ActivatingDocument + DispFileName | @ieframe.dll,-10321 |
tomcat
服务器数据源结构
key: 字符串(String ) | value: 对象(Object) |
---|---|
Directory(目录)是固定的, Name(名称)是可以自己指定的 | 通过配置文件指定对象 |
配置
SqlMapConfig.xml
中配置数据源
指定数据源时 value属性 java:comp/env
为固定路径
<!-- 配置mybatis的环境 -->
<environments default="mysql">
<!-- 配置mysql的环境 -->
<environment id="mysql">
<!-- 配置事务控制的方式 -->
<transactionManager type="JDBC"/>
<!-- 配置连接数据库的必备信息 type属性表示是否使用数据源(连接池)-->
<dataSource type="JNDI">
<!-- 指定数据源名称 -->
<property name="data_source" value="java:comp/env/jdbc/mybatis_jndi"/>
</dataSource>
</environment>
</environments>
-
在
webapp
目录下新建META-INF
目录 并创建数据源信息context.xml
<?xml version="1.0" encoding="UTF-8"?> <Context> <!-- <Resource name="jdbc/mybatis_jndi" 数据源的名称 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?serverTimezone=UTC" 连接url字符串 /> --> <Resource name="jdbc/mybatis_jndi" type="javax.sql.DataSource" auth="Container" maxActive="20" maxWait="10000" maxIdle="5" username="root" password="Hhn004460" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC" /> </Context>