gpt4 book ai didi

java - 如何将 native 查询打印到控制台?

转载 作者:行者123 更新时间:2023-12-02 09:06:02 29 4
gpt4 key购买 nike

我正在创建数据库管理的网络应用程序。其中一项功能是“解释器 SQL”。
这是我用于执行查询的代码:

示例 1

1  public String executeSQL(String[] split){
2 SessionFactory hibernateFactory = someService.getHibernateFactory();
3 Session session = hibernateFactory.openSession();
4 String message = null;
5 for (int i = 0; i < split.length; i++) {
6 try{
7 String query = split[i];
8 session.doWork(connection -> connection.prepareStatement(query).execute());
9
10 message = "Success!";
11 }
12 catch(Exception e){
13 message = ((SQLGrammarException) e).getSQLException().getMessage();
14 }
15
16 }
17 session.close();
18 return message;
19 }

有人可以告诉我如何调用“getResultList()”(第 8 行)吗?
我知道如何在该示例中执行此操作(使用 createNativeQuery):

示例 2

1  public String executeSQL(String[] split){
2 SessionFactory hibernateFactory = someService.getHibernateFactory();
3 Session session = hibernateFactory.openSession();
4 String message = null;
5 for (int i = 0; i < split.length; i++) {
6 try{
7 String query = split[i];
8 EntityManager entityManager = hibernateFactory.createEntityManager();
9 List<Object[]> resultList = entityManager.createNativeQuery(query).getResultList();
10 resultList.stream().map(Arrays::toString).forEach(System.out::println);
11 message = "Success!";
12 }
13 catch(Exception e){
14 // i can't catch SQLException here :( i mean i don't know how...
15 }
16
17 }
18 session.close();
19 return message;
20 }

但是正如你所看到的(第14行)我不知道如何在这里捕获SQLException,因为我得到的不是SQLException,而是: enter image description here我无法访问该字段来获取消息(它是私有(private)的): enter image description here我需要该消息将其打印到我的 html 中。所以我正在尝试另一种方法来执行查询prepareStatement()。
有人知道如何将该查询打印到控制台(示例 1)吗?

最佳答案

要将 SQL 查询打印到控制台中,请将以下内容添加到您的 application.properties 文件中:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

希望对你有帮助!

关于java - 如何将 native 查询打印到控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805773/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com