第一步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&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&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>属性保持一致。