Java jdbc中连接对象Con的作用域

Java jdbc中连接对象Con的作用域,java,oracle,jdbc,Java,Oracle,Jdbc,*语法错误* 我正面临JDBC的问题。 在这方面: Connection con =DriverManager.getConnection("jdbc:odbc:recordtbl","scott","tiger"); 这里的con错误显示我重命名了这个变量 这是我的代码: package md5IntegrityCheck; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmExc

*语法错误*

我正面临JDBC的问题。 在这方面:

Connection con =DriverManager.getConnection("jdbc:odbc:recordtbl","scott","tiger");
这里的con错误显示我重命名了这个变量

这是我的代码:

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);
    }
  }
}
包MD5完整性检查;
导入java.io.UnsupportedEncodingException;
导入java.security.NoSuchAlgorithmException;
导入java.util.Scanner;
导入java.sql.*;
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类MD5完整性检查
{
公共静态void main(字符串[]args)
抛出不支持的编码异常,NoSuchAlgorithmException
{
报表stmt;
结果集rs;
连接con=null;
PreparedStatement pst=null;
尝试
{
forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con=DriverManager.getConnection(“jdbc:odbc:recordtbl”、“scott”、“tiger”);
}
捕获(异常ee)
{ee.printStackTrace();}
System.out.println(“步骤1”);
System.out.println(con.isClosed());
System.out.println(“输入文件名”);
扫描仪=新的扫描仪(System.in);
字符串文件名=scanner.nextLine();
字符串chksumno=“somevalue2”;
//在这里获取文件名并将其存储在filename变量中;
MD5 MD5=新的MD5(文件名);
系统输出打印(“测试”);
chksumno=md5.getHashValue();
System.out.println(“步骤2”);
试一试{
forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
con=DriverManager.getConnection(“jdbc:odbc:recordtbl”、“scott”、“tiger”);
pst=con.prepareStatement(“插入记录TBL值(?,)”;
//System.out.println(pst.isClosed());
System.out.println(“步骤3”);
pst.setString(1,文件名);
System.out.println(“步骤4”);
pst.设置管柱(2,chksumno);
System.out.println(“步骤5”);
pst.execute();
System.out.println(“语句已执行!”);
con.close();
} 
捕获(异常ee)
{ee.printStackTrace();}

如果(args.length您已经在第二次尝试声明它的范围内声明了一个名为
con
的局部变量。这在Java中是不允许的。只需更改它,使其第二次成为赋值而不是声明:

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

(关于您的代码,我还想做很多其他的更改,包括关闭
finally
块中的连接等,但这应该可以解决您当前的问题。)

请发布您收到的确切错误消息Hey JON我的代码正在编译到第一步..其余部分未编译…请更正it@user762357当前位置恐怕我没有时间仔细检查每一件可能出错的小事情。您是否密切关注编译器消息,并尝试自己找出出错的地方?除此之外,您还没有发布MD5、Md5Gui和DoWork类,因此我无法更正所有内容。@user762357-这不是它的操作方式。我们将回答您的问题,但您必须完成这项工作。请从阅读编译器错误消息开始。