数据源与连接池

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,
JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统
在tomcat的conf文件夹下的context.xml配置文件中加入
//name指定JNDI名字
<Resource name="jdbc/mysqlnews"
//指定管理Resource的Manager,有两个值Container和Application
//Container:有容器创建Resource
//Application:有web应用创建和管理Resource
auth="Container"
//指定Resource所属jav类型
type="javax.sql.DataSource"
//数据库用户名
username="root"
//数据库密码
password="root"
//空闲时间连接数据库最大数目
maxIdle="30"
//空闲状态的最长时间(毫秒)
maxWait="10000"
//活动时间连接数据库最大数目
maxActive="100"
//数据库JDBC驱动程序
driverClassName="com.mysql.jdbc.Driver"
//连接数据库路径
url="jdbc:mysql://localhost:3306/newsmanagersystem" />


在项目中WEB-INF文件夹找到web.xml中的<web-app>节点添加
<resource-ref>
<description>mysqlDataSuorce</description>
//res-ref-name值要和context.xml的name值一致
<res-ref-name>jdbc/mysqlnews</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
编写java程序代码
Context ctx = new InitialContext();
//参数java:/comp/env为固定路径jdbc/mysqlnews是res-ref-name的值一致
DataSource envContext = (DataSource)ctx.lookup("java:/comp/env/jdbc/mysqlnews");
//参数jdbc/mysqlds为数据源和JNDI绑定的名字
Connection conn = envContext.getConnection();

需要导入包:javax.naming.* 和javax.sql.DataSource

posted on 2018-01-11 17:19  Tzl初学者  阅读(118)  评论(0)    收藏  举报