java - jdbc中连接对象Con的范围

标签 java oracle jdbc

*语法错误*

我的 JDBC 遇到问题。 在这一行中:

Connection con =DriverManager.getConnection("jdbc:odbc:recordtbl","scott","tiger");

这里出现错误,我重命名了这个变量。

这是我的代码:

package md5IntegrityCheck;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MD5IntegrityCheck
{

  public static void main(String[] args)
    throws UnsupportedEncodingException, NoSuchAlgorithmException
  {


      Statement stmt;
        ResultSet rs;
      Connection con=null;
      PreparedStatement pst=null;
      try
        {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con =DriverManager.getConnection("jdbc:odbc:recordtbl","scott","tiger");
                    }
            catch(Exception ee)
            {ee.printStackTrace( );}

          System.out.println("Step 1");
          System.out.println(con.isClosed());

          System.out.println("Enter the filename");
          Scanner scanner = new Scanner(System.in);
          String filename=scanner.nextLine();
          String chksumno="somevalue2";


          // get the file name here and store it in filename variable;
          MD5 md5 = new MD5(filename);
          System.out.println("test");
          chksumno = md5.getHashValue();

          System.out.println("Step 2");
          try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
                con = DriverManager.getConnection("jdbc:odbc:recordtbl","scott","tiger");

                pst=con.prepareStatement("insert into recordtbl values(?,?)");

          //System.out.println(pst.isClosed());
          System.out.println("Step3");
          pst.setString(1,filename);
          System.out.println("Step 4");
          pst.setString(2,chksumno);
          System.out.println("Step 5");
          pst.execute();

          System.out.println("Statement was EXECUTED!");
          con.close( );
          } 


          catch(Exception ee)
            {ee.printStackTrace( );}


    if (args.length <= 0)
    {
      Md5Gui gui = new Md5Gui();
      gui.runGui();
    }
    else
    {
      DoWork runningProgram = new DoWork();
      runningProgram.run(args);
    }
  }
}

最佳答案

您已经在第二次尝试声明的作用域中声明了一个名为 con 的局部变量。这在 Java 中是不允许的。只需更改它,以便第二次它是赋值而不是声明:

con = DriverManager.getConnection("jdbc:odbc:recordtbl", "scott", "tiger");

(我会更改您的代码的其他各种内容,包括关闭 finally block 中的连接等,但这应该可以解决您眼前的问题。)

关于java - jdbc中连接对象Con的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080527/

相关文章:

SQL CASE语句检查字段中的多个拼写并在找到时返回相同的值?

R 版本 4.0.0 上的 ROracle

java - 从单元测试连接时,HSQL 立即关闭连接

java - 转换为 HSB 值后计算直方图均衡

c++ - Pro*C/C++ 是否支持 "describe [schema.]object"语句?

java - 将 @OneToMany 与 @OneToOne 一起使用是否正确?

java - 自动提交设置为 false 时的完整性约束

java - Netbeans:包 com.mysql 不存在

java - 随机播放列表(某些序列除外)

java - java中的整数类型&& Null