当前位置: 首页 > 面试题库 >

执行存储在数据库中的Java代码

万俟招
2023-03-14
问题内容

我有定期被推送到数据库中的Java代码(很难解释为什么它存在于数据库中,而这只会使焦点从主要问题上移开)。

在运行时,我查询数据库。我可以执行从数据库中获得的代码吗?我只在代码中存储main方法的内容。运行数据库的服务器是HTTP服务器

数据库中的示例代码(仅供参考):

int i = 10;
int j = 2;
int k = i*j;
System.out.println("Result is " + k);

预期产量:

Result is 20

问题答案:

任何Java程序都是正确的Groovy程序。因此,您可以将Groovy依赖项添加到项目中,然后使用 GroovyShell 执行代码:

GroovyShell shell = new GroovyShell();
shell.evaluate(code);

因此,在您的情况下:

GroovyShell shell = new GroovyShell();
shell.evaluate("int i = 10;\n" +
        "int j = 2;\n" +
        "int k = i*j;\n" +
        "System.out.println(\"Result is \" + k);");

并输出:

结果是20

或者,您可以使用 ScriptEngineManager (更常见的方式):

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("groovy");
engine.eval("int i = 10;\n" +
        "int j = 2;\n" +
        "int k = i*j;\n" +
         "System.out.println(\"Result is \" + k);");

但是无论如何,您需要将Groovy添加到您的代理中。



 类似资料:
  • 问题内容: 我正在尝试编写一个页面,该页面调用存储在MySQL数据库中的PHP。存储在MySQL数据库中的页面包含要在页面加载时运行的PHP(和HTML)代码。 我该怎么做呢? 问题答案: 您可以为此使用eval命令。 不过,我还是建议不要这样做,因为使用这种方法存在很多陷阱。 调试比较困难,这意味着一些安全隐患(执行数据库中的不良内容,呵呵)。 请参阅何时在php中使用eval邪恶?例如。Goo

  • 问题内容: 因此,在C ++ / C#中,您可以创建标志枚举来保存多个值,并且在数据库中存储单个有意义的整数当然是微不足道的。 在Java中,您有EnumSets,这似乎是在内存中传递枚举的一种很好的方法,但是如何将组合的EnumSet输出为整数进行存储?还有另一种方法可以解决这个问题吗? 问题答案:

  • 在具有管道和转发功能的MIPS体系结构上: add指令将在步骤3(执行操作)准备好结果,但我假设sw指令希望在步骤2(指令解码)得到结果 David A. Patterson的《计算机组织与设计》一书中有一个已解决的练习:在以下代码段中找到危险并重新排序指令以避免任何管道停滞: 解决方案: 在解决方案中,它正确识别加载使用危险并相应地重新排列代码,但是否也存在执行存储危险?

  • 使用Spring Boot应用程序。我有一个类UserService,我在其中创建了一个动态查询,根据请求参数具有多个or条件: 我有UserRepository接口,我需要执行这个查询。到目前为止,我使用了findById等JPA函数或@Query(“从事件中选择id”)。 如何将此查询从服务类传递到存储库并执行它?

  • 我创建了一个TextView,它以多行显示值 ,我希望将该值保留在SQLite数据库中。这是我使用的代码: 问题是当我保存值时,整个值被插入到一个单元格中。我希望每行的值分开,然后插入到每行的单个单元格中,尽管我使用扫描器方法插入数据,但它不起作用。那有什么办法吗?