Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Замучился уже. не выводит ничего хоть убей. (пару раз чудом выводило кусок значения, но потом и это сломал.) Имеем поле CLOB в которое запихнули XML -код Нужно прочесть. Вот готовый код JSP. Всё работает- но ничего не показывает. ----------------------------------------- <%@page import="java.sql.*,java.sql.Statement,java.sql.Clob,java.util.*, javax.servlet.jsp.*, javax.swing.*, java.sql.Connection, java.sql.DriverManager, java.sql.SQLException,javax.swing.*, java.sql.ResultSet,java.sql.Statement,java.io.*,java.lang.*"%> <%@ page contentType="text/html; charset=windows-1251" %> <html> <head> </head> <body bgcolor="#C0DFFD"> <form method="GET" action="vipiska.jsp"> <input type="submit" value="Submit" name="B1" ><BR> <% Connection conn = null; // load the DB2 Driver try { Class.forName("com.ibm.db2.jcc.DB2Driver"); } catch(ClassNotFoundException se) { se.printStackTrace(); System.out.println(se); } conn = DriverManager.getConnection ("jdbc:db2://10.10.10.10:50000/baza","user","password"); Statement st = conn.createStatement(); String myQuery = "SELECT TAG_CONTENT FROM TABLE where TAG_ID=1111111"; ResultSet resultSet = st.executeQuery(myQuery); %> <% while (resultSet.next()) { StringBuffer suggestions = new StringBuffer(); Clob clob = resultSet.getClob("TAG_CONTENT"); Reader clobStream = clob.getCharacterStream(); int nchars = 0; char[] buffer = new char[10]; while((nchars = clobStream.read(buffer)) != -1) // Read from Clob suggestions.append(buffer, 0, nchars); String strXML = suggestions.toString(); %> <B><%=strXML%></B><BR> <% } // clobStream.close(); resultSet.close(); st.close(); conn.close(); %> </form > </body> </html> --------------------------------------------------------------- И пустой экран. Что не так? Кому-нить приходилось джавой выдерать из CLOB значения? Если да, то поделитесь примером плиз. Или ткните в ошибку. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 12:13 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Вопрос снят в виду ответа на него в форуме java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 13:43 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Ivan Ivanich, "Уж сколько раз твердили миру". За такой код на сервере приложений я своих подопечных "расстреливаю": - За явное использование класса драйвера и неиспользование пула соединений. - За использование JSP в случае, когда нужен чистый сервлет. - За неиспользование PreparedStatement (ну это по конкретной ситуации). По сути проблемы. Пример кода. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 13:51 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
А чем не угодило JSP то? И чем не угодил явное использование класса драйвера? Неа, ну вот если отбросить пальцы то чем плох мой пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 16:56 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Ivan Ivanich, 1. Использование внедренного ява-кода (ака скриптлет) в JSP есть моветон. Библиотеки тегов специально придумали чтобы избавиться от скриптлетов, ибо в результате код становится нечитабельным и сложно-сопровождаемым. Это не "пальцы", это факты. 2. Работать в обход пула соединений в среде сервера приложений есть не только моветон, но и вредно с т.з. производительности и сопровождения. Что такое пулы соединений и почему они нужны написано практически в любой документации по J2EE-серверам. Это равносильно тому, что в многоквартирном жилом доме с централизованным отоплением и связью каждый будет в квартире ставить собственную печку-буржуйку и кидать провода до ближайшей линии электропередач. И потом жаловаться что дымно, холодно и в грозу оборудование выгорает. Если этот пример "только пример", то без разницы конечно. За использование такого кода в производстве обычно начинают отстрел. PS: Если включить J2EE защиту, то этот код не будет работать, т.к. в этом режиме приложению классы загружать будет нельзя и исходящие соединения устанавливать тоже будет нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 17:54 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Ваш пример кода рабочий? Много напильником надо дорабатыввать. Просто мне нужно сделать быстрее, пробовал и с аплетом, но знаний джавы не хватило. вот и решил попроще JSP со скриплетами. На тех же дельфях мне бы 10 минут хватило. А вот с джавой имею дело редковато. Не хватает времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2010, 20:10 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
И кстати, где в вашем примере ответ на мой вопрос? Навык работы вижу. Распальцовки вижу. (я своих подопечных "расстреливаю"), а вот чтение поля типа CLOB не вижу. Мне именно это и было надо: StringBuffer suggestions = new StringBuffer(); Clob clob = resultSet.getClob("TAG_CONTENT"); Reader clobStream = clob.getCharacterStream(); int nchars = 0; char[] buffer = new char[10]; while((nchars = clobStream.read(buffer)) != -1) // Read from Clob suggestions.append(buffer, 0, nchars); String strXML = suggestions.toString(); а не ваши блестящие владения сервлетами и пулами коннекций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2010, 09:36 |
|
||
|
Прочесть CLOB в DB2 (JSP)
|
|||
|---|---|---|---|
|
#18+
Ivan Ivanich, Код вообще-то рабочий. Проверено на DB2 v9.1.0.6, DB2 JCC 3.53.95 и Apache Tomcat 6.0.2.4 CLOB-объект можно читать через метод getString(<num>). При возврате XML-содержимого в сервлете/JSP этого обычно достаточно. Случай оптимизации для больших CLOB-объектов отдельный разговор. DDL таблицы: Код: plaintext Приношу извинения, если тон сообщения оказался слишком резким. Честное слово уже "стойка" на использование DriverManager в JSP/Cервлетах, и использование JSP не по месту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2010, 10:13 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=70&tid=1602858]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 190ms |

| 0 / 0 |
