本次实验以mysql数据库为例

 

一、配置

(1、进入GlassFish控制台 -》 资源 -》 JDBC连接池

新建连接池

池名称:mywork

资源类型:javax.sql.DataSource

数据源类名称:com.mysql.jdbc.jdc2.optional.MysqlDataSource

portNumber:3306

databaseName:mywork

serverName:127.0.0.1

user:root

password:xxxxxx

 

(2、GlassFish控制台 -》 资源 -》 JDBC资源

新建资源

JNDI名称:jdbc/mywork

池名称:mywork

 

(3、添加jdbc对特定数据库的驱动

mysql-connector-java-5.0.4-bin.jar (通常在mysql安装目录下可以找到)

放置到:glassfish-3.1.2.2\glassfish\domains\domain1\lib

 

二、使用

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

 

        ResultSet rs = null;
        Statement stmt = null;
        Connection conn = null;
        try
        {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet SaveIP</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet SaveIP at " + request.getContextPath() + "</h1>");
            out.println("<ul>");
            
            String strJNDIName = "jdbc/ytestpool";
            Context initialcontext = new InitialContext();
            DataSource datasource = (DataSource) initialcontext.lookup(strJNDIName);
            conn = datasource.getConnection();
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            rs = stmt.executeQuery("select * from ipwork");
            while (rs.next())
            {
                //out.println(rs.getString("user_name"));
                out.println("<li>" + rs.getString("clientname") + "===>>"+ rs.getString("ip") + "</li>");
            }
            
            out.println("</ul>");
            out.println("</body>");
            out.println("</html>");                        
        }
        catch (Exception e)
        {
            System.out.println(e.toString());
        } finally
        {
            try
            {
                if (rs != null)
                {
                    rs.close();
                    rs = null;
                }
                if (stmt != null)
                {
                    stmt.close();
                    stmt = null;
                }
                if (conn != null)
                {
                    conn.close();
                    conn = null;
                }
            }
            catch(SQLException sqlex)
            {
                System.out.println(sqlex.getMessage());
            }
            
            out.close();
        }