Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用jdbc在java上执行sql查询_Java_Sql_Jdbc_Oracle11g - Fatal编程技术网

无法使用jdbc在java上执行sql查询

无法使用jdbc在java上执行sql查询,java,sql,jdbc,oracle11g,Java,Sql,Jdbc,Oracle11g,我正在学习JDBC,并尝试使用IDEEclipse在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="sy

我正在学习JDBC,并尝试使用IDEEclipse在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");
    }  
输出为: 驱动程序加载成功

建立连接


查询未执行

由于尚未初始化已声明的连接引用,因此出现异常

修改您的
DriverManager.getConnection(…)
,如下所示:

con=DriverManager.getConnection(…)


如果有帮助,请告诉我。

查看O.p.如何处理此问题的另一种方法。不必要地初始化变量会让您忘记正确设置它们。它会破坏编译器在使用前设置所有局部变量的检查

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...;
) {
   ...;
}

请参阅以获取进一步阅读。

出于人类之爱,请打印堆栈跟踪或记录您的异常:
e.printStackTrace(System.err)