[英]How to make JDBC connectivity
我正在使用以下类作为我的连接管理器,以通过数据源进行数据库连接。 问题是,当我通过DAOImpl类调用此类时,它返回null。
private static DataSource dataSource;
private static Connection connection;
private ConnectionFactory() {
System.out.println(" ConnPoolFactory cons is called ");
}
public static synchronized Connection getConnection() throws SQLException {
try {
if (connection == null) {
Context ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/myoracle");
connection = dataSource.getConnection();
} else {
return connection;
}
} catch (NamingException e) {
e.printStackTrace();
}
System.out.println(connection);
return connection;
//System.out.println(connection);
}
DriverManager
用于连接性,则可以使此类工作。 DataSource
通过servlet类实现JDBC connectvity。 但是使用上面的代码,我得到以下异常:
javax.naming.NoInitialContextException:需要在环境或系统属性中或作为applet参数或在应用程序资源文件中指定类名称:
以下是我的context.xml
<Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" name="jdbc/myoracle" password="password" type="javax.sql.DataSource" url="jdbc:oracle:thin:@10.49.116.42:1521:DBNAME" username="username"/>
我认为您错过了用于数据库连接的主机和端口
连接的示例代码
public static Connection Connect(){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your Oracle JDBC Driver?");
e.printStackTrace();
return null;
}
System.out.println("Oracle JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager.getConnection(
"YOUR JDBC URL", "USERNAME",
"PASSWORD");
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return null;
}
return connection;
}
您可以这样编写jdbc连接代码
String url = "jdbc url" + "databaseName;userName;password;";
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(url);
}
catch (ClassNotFoundException cnfex)
{
cnfex.printStackTrace();
}
我真的不明白您要问的是什么...但是如果您想要JDBC连接,可以采用以下方法:
1.您必须为正在使用的RDBMS安装JDBC驱动程序...如果使用任何IDE,则无需单独安装它...
2.您必须告诉计算机驱动程序的存储位置
i>您必须设置环境变量
之后,您就可以将Java代码与数据库连接了
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:port_number/Database name","root","password");
您必须输入要使用的数据库的数据库名称,端口号和密码。 注意:此处的数据库为MySql。对于其他RDBMS,URL将不同。 希望这可以帮助
您提到了context.xml。 因此,假设您使用Apache Tomcat容器进行JDBC连接。
因此,对我来说问题似乎是由于以下可能性造成的:
来自Apache网站的注释:在$ CATALINA_BASE / conf / server.xml或最好是每个Web应用程序上下文XML文件(META-INF / context.xml)中可以指定的元素中输入Tomcat特定的资源配置。 。
注意:如果已在元素中定义了资源,则不必在/WEB-INF/web.xml中定义该资源。 但是,建议将该条目保留在/WEB-INF/web.xml中,以记录Web应用程序的资源要求。 因此,您可以尝试删除web.xml中的Oracle JDBC条目,然后首先评估是否可行。 然后输入正确的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.