import java.sql.*;
public class Connect
{
public static void main (String[] args)
{
Connection conn = null;
try
{
String userName = "root";
String password = "password123!";
String url = "jdbc:oracle:thin:@localhost:3306:procomport";
//Class.forName ("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, userName, password);
//Connection connection = DriverManager.getConnection(url , userName, password);
System.out.println ("Database connection established");
}
catch (Exception e)
{
System.err.println ("Cannot connect to database server");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
}
这是我的代码我有多个不同的数据库,但它不会连接到它们中的任何一个有什么问题呢?我一直收到它无法连接到数据库的错误。虽然我可以使用其他管理工具连接它,但这是一个驱动程序问题吗?我怎么能告诉我是否有必要的司机?
答案 0 :(得分:1)
您提供的用于连接数据库的代码将无法连接到MySQL或Oracle,因为它是尝试连接到这两者的混合尝试。
对于Oracle,代码应该类似于:
String userName = "root";
String password = "password123!";
String url = "jdbc:oracle:thin:@localhost:1521:procomport";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, userName, password);
(假设您在Oracle上有一个名为root
的用户,并且Oracle SID为procomport
)。特别注意端口号的变化:MySQL通常使用3306
,Oracle使用1521
。
对于MySQL,连接代码应如下所示:
String userName = "root";
String password = "password123!";
String url = "jdbc:mysql://localhost:3306/procomport";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, userName, password);
(假设您的MySQL数据库名为procomport
)。请注意不同类型的连接URL和驱动程序类名称。
Oracle驱动程序通常位于名为ojdbc6.jar
的JAR文件中,而JAR中的MySQL名称为mysql-connector-java-5.1.18-bin.jar
。
最后,当你写一些像
这样的东西 catch (Exception e)
{
System.err.println ("Cannot connect to database server");
}
你真的没有帮助自己。异常e
几乎肯定会包含您的数据库连接代码无法正常工作的原因,但是故意忽略它会使您自己更难以找出出错的地方。
老实说,我很想宣布main
方法throws Exception
(将其添加到public static void main...
行的末尾),然后你可以删除你无益的catch
阻止。如果抛出异常但未在main
内处理,则JVM将在退出之前为您打印堆栈跟踪。
答案 1 :(得分:0)
在你之后:
System.err.println();
放置一个:
e.printStacktrace();
然后您将看到真正的错误消息。可能驱动程序类不在类路径中。
希望这会对你有所帮助
答案 2 :(得分:0)
Class.forName("oracle.jdbc.driver.OracleDriver");
行oracle.jdbc.driver.OracleDriver
”
醇>