![](/img/trans.png)
[英]Unable to execute stored Procedure using Java and JDBC on SQL server
[英]Unable to Execute a sql query on java using jdbc
我正在学习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 Practices->在进一步阅读之前不要声明局部变量 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.