JNDI学习(一) Tomcat7 配置JNDI (JDBC datasource)

本文详细介绍了如何在Tomcat7中配置JNDI,包括将JDBC驱动放入$CATALINA_HOME/lib目录,修改web.xml和context.xml文件,以及在Java代码中如何使用JNDI数据源。特别指出,context.xml的<Resource>标签name属性须与web.xml的<res-ref-name>匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        第一步Tomcat上安装JDBC驱动包,将jar包放到 $CATALINA_HOME/lib 目录下。

        第二步配置项目的web.xml文件,参考配置如下

<resource-ref>
	  <description>
	  </description>
	  <res-ref-name>
	    jdbc/lianDB
	  </res-ref-name>
	  <res-type>
	    javax.sql.DataSource
	  </res-type>
	  <res-auth>
	    Container
	  </res-auth>
	</resource-ref>

         第三步配置$CATALINA_HOME/conf目录下的context.xml文件

<Resource name="jdbc/lianDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="root"
            password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/lian?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=false"
            maxActive="8"
            maxIdle="4"/>

         第四步 如何在Java中使用JNDI数据源

public String login() throws Exception {
		Context initCtx = new InitialContext();
		Context envCtx = (Context) initCtx.lookup("java:comp/env");
		DataSource ds = (DataSource) envCtx.lookup("jdbc/lianDB");
		StringBuffer sql = new StringBuffer();
		/**
		 * select group_id , group_name from t_group where group_name='同事'
		 */
		sql.append("select group_id , group_name from t_group   ");
		sql.append("where group_name=? ");
		Connection conn = ds.getConnection();
		PreparedStatement ps = null;
		ResultSet rs = null;
		Group group = new Group();
		try {
			ps = conn.prepareStatement(sql.toString());
			ps.setString(1, "同事");
			rs = ps.executeQuery();
			if (rs.next()) {
				group.setGroupId(rs.getString(1));
				group.setGroupName(rs.getString(2));
			}

		} finally {
			if (rs != null)
				rs.close();
			if (ps != null)
				ps.close();
			conn.close();
		}
		Gson gson = new Gson();
		return gson.toJson(group);
	}

         说明: context.xml文件 <Resource> 标签中name属性要和web.xml文件中<res-ref-name>属性保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值