【问题标题】:GlassFish JDBC Connection PoolingGlassFish JDBC 连接池
【发布时间】:2015-01-05 05:36:39
【问题描述】:

我正在尝试为我的 Web 应用程序创建连接池,但不知道如何使用它设置 sql server 的基本知识

主要问题:什么是资源类型(写什么)、类名、驱动类名?

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String str="SELECT * from Book";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        try {
            Connection con = DriverManager.getConnection("jdbc:odbc:lol","Sar\\KILLER_GUY",null);
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery(str);
            System.out.println("SalesPerson Id: ");
            while(rs.next())
            {
                String id= rs.getString("Add");
            System.out.println(id);
            }
            con.close();
        }
    catch(SQLException e)
    {

    }

【问题讨论】:

  • 不清楚你想要达到什么目的。你想在你的 glassfish 域上创建连接池吗?你对这段代码有什么问题吗?您是否尝试过在 glassfish 中运行此代码(如何?)?您是在尝试连接到 Sql Server 还是 Oracle?
  • 我想在我的 glassfish 域上创建一个连接池,我想学习如何为 java ee6 创建一个连接池的代码没有任何问题
  • 为了实用,我的教师告诉我使用我的 sql server 中的现有数据库为我的 web 应用程序创建一个 jdbc 连接池,我正在学习基本的如何使用我的 sql server 创建 jdbc 池完全空白什么和怎么做
  • by my sql server 你是指你的 MS Sql Server 还是 MySql 服务器?
  • MS sql server 我用 odbc 标记了我的问题,因为我想清楚我可以用 odbc 还是 nt 来做?

标签: java odbc connection-pooling pool jdbc-odbc


【解决方案1】:

您需要在 GlassFish 中设置一个连接池,然后通过 JNDI(Java 命名和目录接口 - 用于目录服务的 Java API)访问连接池数据源。请参阅this step by step tutorial,其中提供了以下大纲的详细信息:

  1. 打开 JDBC 连接池列表

    在 Glassfish 管理面板中,使用页面左侧的导航菜单(资源->JDBC->连接池)打开 JDBC 连接池列表。在 JDBC Connections Pools 中,单击 New... 以创建新的 JDBC Connection Pool。

  2. 创建一个新的 JDBC 连接池

    在“新建 JDBC 连接池”对话框中,指定池的名称。请务必指定正确的“资源类型”并单击“下一步”。

  3. 指定数据源类名 (com.microsoft.sqlserver.jdbc.SQLServerDataSource)

    在下一页上,指定数据源类名。类名当然是特定于驱动程序的。请查阅您的驱动程序文档以找到正确的类。单击“完成”创建 JDBC 连接池。

  4. 编辑连接池

    创建 JDBC 连接池后,您可以返回并添加/编辑属性,例如 JDBC 连接 URL、用户名、密码等。

  5. 创建 JDBC 资源

    最后,您需要创建一个新的 JDBC 资源(Resources->JDBC->JDBC Resources),您可以在 Web 应用程序中引用它。

  6. 创建连接

    一旦你创建了一个连接池,你就可以像这样在你的网络应用程序(例如 servlet 或 JSP)中使用它:

// Look up the connection pool data source
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("Your JNDI Name here");

// Get a database connection
java.sql.Connection conn = ds.getConnection();
try {
  // Do something with the connection
} finally {
  // Close connection so it can be released back to the pool!
  conn.close();
}

【讨论】:

  • gknicker:你能澄清一下什么是jndi和jdbc连接池吗?
  • 我在回答中澄清了 JNDI。 JDBC 是 Java Database Connectivity,而 JDBC 连接池实际上只是一个提供池化连接的 JDBC DataSource。
猜你喜欢
  • 1970-01-01
  • 2013-07-13
  • 2010-12-27
  • 1970-01-01
  • 2014-08-15
  • 2015-11-16
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多