Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
如何在Java.class文件中更改SQL脚本_Java_Sql - Fatal编程技术网

如何在Java.class文件中更改SQL脚本

如何在Java.class文件中更改SQL脚本,java,sql,Java,Sql,一位同事用Java写了一篇文章,但他已经不在我们身边了。我不熟悉Java,但我们的应用程序数据库中的表名需要更新,以反映软件更改。这些表名在.class文件中的SQL脚本中引用。我下载了Java反编译器,以便阅读代码,但我无法使用此程序保存更改。不学习Java我还能做什么 没有源头,你会受到伤害。您可以尝试使用,看看是否可以提取源代码并重新编译它,但这不是一项容易的任务,除非它是微不足道的java代码。除非您只是想了解它的功能,否则我会在对代码进行任何更改之前重新编译代码(因为重新编译代码将是最

一位同事用Java写了一篇文章,但他已经不在我们身边了。我不熟悉Java,但我们的应用程序数据库中的表名需要更新,以反映软件更改。这些表名在.class文件中的SQL脚本中引用。我下载了Java反编译器,以便阅读代码,但我无法使用此程序保存更改。不学习Java我还能做什么

没有源头,你会受到伤害。您可以尝试使用,看看是否可以提取源代码并重新编译它,但这不是一项容易的任务,除非它是微不足道的java代码。除非您只是想了解它的功能,否则我会在对代码进行任何更改之前重新编译代码(因为重新编译代码将是最困难的部分)


仅供参考,所有这些都假设代码是以这样一种方式进行的,即反编译是可以的。如果你违反了EULA(开玩笑,我怀疑你是否真的会被起诉),不要把你的律师账单寄给我

没有办法,您可以直接更新.class文件中的内容

  • 将反编译代码另存为.java文件
  • 在其中更改SQL脚本
  • 再编译一遍。。您将获得带有更新更改的.class文件
  • 用这个类文件替换旧的类文件

  • 您没有告诉我们您使用的是什么数据库,并且是唯一需要更改为不同名称的SQL表名。如果只需要更改表名,则可以在mysql/oracle/sqlserver/postgresql/db2中创建一个视图,该视图类似于旧表名的别名。例如mysql:

    在java类文件中创建视图表\u name\u作为
    从更新的表格名称中选择*
    
    由于您对类进行了反编译,所以可以查看它引用的表的名称,并创建一个名为这样的视图来指向您的新表。但在新表中,列必须相同,除非您知道该类不关心列类型/顺序等。如果您不熟悉Java或一般编程,最有可能的情况是聘请一名兼职人员为您完成这项工作


    询问来源不起作用?。。。你没有版本控制,前同事在离开家之前格式化了他的工作站的硬盘。最好不要不知道。如果使用了
    PreparedStatement
    之类的东西,那么你很可能不得不重写代码部分。如果这是公司内部开发的代码,并且属于公司,你的同事必须给你的公司源代码。否则,你所做的是违法的。谢谢你的回答。我应该说得更清楚些。这里有一个例子。在ERP软件最新版本的应用程序数据库中,表itemcust包含了所需和引用的所有信息。在最新版本中,仍然保留表itemcust,但定价信息被分离到表itemcustprice中。此外,itemcustprice表包含生效日期(为什么要实现它),我需要修改语句以从上一个生效日期提取信息。