Я создаю веб-приложение для управления базами данных. Одной из функций является «интерпретатор 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 я получаю это :
и я не могу получить доступ к этому полю, чтобы получить сообщение (это личное сообщение):
Мне нужно это сообщение, чтобы распечатать его в моем html. Поэтому я пытаюсь другой метод для выполнения запросов prepareStatement ().
У всех есть идеи, как распечатать этот запрос в консоли (Пример 1) ?