1、首先启动glassfish服务器,在地址栏中输入http://localhost:4848/,进入服务器的配置界面,如下:

20170206148636045921422.png

2、在Common Tasks下选择Resources的JDBC,可以看到JDBC资源(JDBC Resources)和Connection Pools(连接池),在Connection Pools(连接池)中点击New按钮,建立一个连接池jdbc_new,如下:

2017020614863604953693.png

配置基本信息,如下:

20170206148636051823439.png

Next后的第二步:

20170206148636054644803.png

Finish之后进入刚刚配置的jdbc_new选择附加配置,如图配置相关数据:

20170206148636057072152.png

3、配置完成之后,回到之前的General中测试Ping:

20170206148636059534895.png

注意:如果此时出现javax.resource.ResourceException: Class name is wrong orclasspath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource这个错误时候,是因为没有把mysql驱动包mysql-connector-java-5.1.20-bin.jar放入glassfish安装目录domains\domain1\lib\ext下;

解决方法:把mysql驱动包mysql-connector-java-5.1.20-bin.jar放入glassfish安装目录domains\domain1\lib\ext下并重新启动glassfish服务器就可以了。

4、创建连接池成功之后,点击JDBC Resources,在JDBC资源的配置界面中,Pool  Name(连接池名称)就会出现刚配置成功的连接池jdbc_new,其配置界面如下:

20170206148636062050533.png

2017020614863606689156.png

5、在配置界面的JNDI Name中配置JNDI的名字为jdbc/test(这个名字可以自己取).至此,连接池和数据源都以配置完成。

相关配置到这里就完成了,我们还需要做一个事情,那就是,测试。

6、测试连接数据库是否成功:

我们在Jave Web 项目中新建一个jsp页面来测试,代码如下:

<%-- 
    Document   : jdbc_test
    Created on : 2015-11-8, 13:24:37
    Author     : 刘经济 
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>

    
        测试GlassFish配置的Mysql数据库连接池
    
    

# 下面是测试结果:

        <%
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            ResultSetMetaData md = null;
            try {
                Context initCtx = new InitialContext();
                DataSource ds = (DataSource) initCtx.lookup("jdbc/test");
                if (ds != null) {
                    out.println("已经获得DataSource连接
");
                    out.println("资源ID: " + ds.toString() + "
");
                    conn = ds.getConnection();
                    stmt = conn.createStatement();
                    out.println("从DataSource获取Connection成功!

");
                    rs = stmt.executeQuery("select * from admins");
                    md = rs.getMetaData();
                    out.println("");
                    out.println("");
                    for (int i = 0; i < md.getColumnCount(); i++) {
                        out.println("");
                    }
                    while (rs.next()) {
                        out.println("");
                        out.println("");
                        out.println("");
                        out.println("");
                        out.println("");
                        out.println("");
                    }
                    out.println("
" + md.getColumnName(i + 1) + "
" + rs.getString(1) + "" + rs.getString(2) + "" + rs.getString(3) + "" + rs.getString(4) + "
"); conn.close(); out.println("

关闭连接.. "); } } catch (Exception e) { out.println(" 出现异常.. "); out.println(e.toString()); } %>

 

7、我们的测试结果:

20170206148636069296069.png