无法使用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

上一篇: Unable to Execute a sql query on java using jdbc

下一篇: Driver JDBC PostgreSQL with Android