How do I connect to a Websphere Datasource with a given JNDI name?

前端 未结 6 1486
温柔的废话
温柔的废话 2020-12-07 23:15

I\'m using Websphere Portal 7.0 and creating a portlet with RAD 8.0. My portlet is trying to make a db2 connection to a remote server. I wrote a java program locally to do a

6条回答
  •  遥遥无期
    2020-12-07 23:51

    To get a connection from a data source, the following code should work:

    import java.sql.Connection;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    
    Context ctx = new InitialContext();
    DataSource dataSource = ctx.lookup("java:comp/env/jdbc/xxxx");
    Connection conn = dataSource.getConnection();
    
    // use the connection
    
    conn.close();
    

    While you can look up a data source as defined in the Websphere Data Sources config (i.e. through the websphere console) directly, the lookup from java:comp/env/jdbc/xxxx means that there needs to be an entry in web.xml:

    
        jdbc/xxxx
        javax.sql.DataSource
        Container
        Shareable
    
    

    This means that data sources can be mapped on a per application bases and you don't need to change the name of the data source if you want to point your app to a different data source. This is useful when deploying the application to different servers (e.g. test, preprod, prod) which need to point to different databases.

提交回复
热议问题