我尝试使用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;
答案 0 :(得分: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();
}
}
答案 1 :(得分:0)
我希望它可以解决你的问题,因为它在我的情况下工作:
Context ic = new InitialContext();
DataSource myDatasource= (DataSource) initContext.lookup("java:comp/env/jdbc/MyDatasource");
Connection con = myDatasource.getConnection();
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/MyDatasource");
Connection conn = ds.getConnection();