无法使用jdbc在java上执行sql查询
我正在学习JDBC并尝试使用IDE Eclipse在Java上执行sql查询。 jdbc驱动程序正在加载并且连接已建立,但查询无法运行。
import java.sql.*;
public class JDBCDemo {
public static void main(String[] args) {
String url="jdbc:oracle:thin:@//localhost:1521/xe";
String un="system";
String pwd="system";
Connection con=null;
Statement stmt=null;
ResultSet res=null;
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
System.out.println("Driver Loaded successfully");
}
catch(Exception e)
{
System.out.println("Driver not loaded");
}
try{
DriverManager.getConnection(url,un,pwd);
System.out.println("Connection established");
}
catch(Exception f)
{
System.out.println("Connection not established");
}
try{
String s="Select * from student";
stmt=con.createStatement();
res=stmt.executeQuery(s);
System.out.println("Query executed succesfully");
}
catch(Exception e)
{
System.out.println("Query not executed");
}
输出是:驱动程序加载成功
连接已建立
查询未执行
由于您尚未初始化您已声明的Connection参考,因此您将收到异常。
修改您的DriverManager.getConnection(...)
,如下所示:
con = DriverManager.getConnection(...)
。
让我知道它是否有帮助。
查看OP如何解决此问题的另一种方法。 不必要地初始化变量会让你忘记正确设置它们。 它打败了编译器检查所有当地人在使用之前设置。
Connection con=null;
try {
con = ...;
...;
} finally {
if(con != null) con.close();
}
这将有更多的编译器检查:
Connection con = ...;
try {
Statement stmt = con...;
try {
ResultSet rst = stmt...;
try {
...;
} finally {
rst.close();
}
} finally {
stmt.close();
}
} finally {
con.close();
}
或者,在Java 1.7+中:
try (
Connection con = ...;
Statement stmt = con...;
ResultSet res = stmt...;
) {
...;
}
请参阅Java实践 - >在使用之前不要声明局部变量以进一步阅读。
链接地址: http://www.djcxy.com/p/94255.html