0

我尝试使用 context.xml 文件在我的 java 代码中与数据库建立连接,我的代码如下,

 InitialContext ic = new InitialContext();
    Context xmlContext = (Context) ic.lookup("java:comp/env"); 
    DataSource myDatasource = (DataSource) ((InitialContext)
xmlContext).lookup("jdbc/MyDatasource");


    con = myDatasource.getConnection();

但是我在最后一行(con = myDataSource.getConnection();)出现错误,说明添加强制转换到myDataSource ..m无法解决这个问题..有什么帮助吗?我的进口如下

import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


import com.lowagie.text.pdf.codec.postscript.ParseException;
4

2 回答 2

0

我基本上在 Eclipse 中复制/粘贴了您的代码,并依靠编译器来建议您看到的导入。就我而言,类型con来自java.sql.Connection.

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class Test {

    void doit() throws NamingException, SQLException {
        InitialContext ic = new InitialContext();
        Context xmlContext = (Context) ic.lookup("java:comp/env");
        DataSource myDatasource = (DataSource) ((InitialContext) xmlContext)
                .lookup("jdbc/MyDatasource");

        Connection con = myDatasource.getConnection();
    }
}
于 2013-09-27T04:53:01.577 回答
0

我希望它能解决您的问题,因为它适用于我的情况:

 Context ic = new InitialContext();
 DataSource myDatasource= (DataSource) initContext.lookup("java:comp/env/jdbc/MyDatasource");
 Connection con = myDatasource.getConnection();

或以下来自JNDI 数据源的内容

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/MyDatasource");
Connection conn = ds.getConnection();
于 2013-09-27T07:45:43.130 回答