как напечатать значение jLabel с помощью некоторой базы данных mysql с помощью jasper Report [duplicate]

Если вы продолжаете выделять & amp; сохраняя ссылки на объект, вы будете заполнять любой объем памяти, который у вас есть.

Один из вариантов заключается в том, чтобы закрыть прозрачный файл & amp; открываются, когда они переключают вкладки (вы сохраняете только указатель на файл, а когда пользователь переключает вкладку, вы закрываете и очищаете все объекты ... это заставит файл менять медленнее ... но ...), и, возможно, хранить только 3 или 4 файла в памяти.

Другое дело, что вы должны сделать, когда пользователь открывает файл, загружает его и перехватывает любой OutOfMemoryError, тогда (поскольку невозможно открыть файл) закрыть этот файл, очистить его объекты и предупредить пользователя о том, что он должен закрыть неиспользуемые файлы.

Ваша идея динамически расширяющейся виртуальной памяти не решает проблему, поскольку машина ограничена ресурсами, поэтому вы должны быть осторожны и amp; [или g3]

Несколько советов, которые я видел с утечками памяти:

-> Имейте в виду, что если вы поместите что-то в коллекцию, а потом забудьте об этом, вы все еще имеете к ней сильную ссылку, поэтому уничтожаете коллекцию, очищаете ее или делаете что-то с ней ... если нет, вам будет трудно найти утечку памяти.

-> Возможно, использование коллекций со слабыми ссылками (weakhashmap ...) может помочь в проблемах с памятью, но вы должны быть осторожны с ним, поскольку вы можете обнаружить, что объект, который вы искали, был собран.

-> Еще одна идея, которую я нашел, - создать постоянную коллекцию, которая хранится на объектах базы данных, наименее используемых и прозрачно загруженных. Это, вероятно, лучший подход ...

24
задан Alex K 18 June 2016 в 11:43
поделиться

2 ответа

Из моего личного опыта с JasperReports я могу вывести, что вы будете использовать параметры и поля больше всего. Параметры и поля - это ячейки памяти или значения, которые вы можете заполнить из своего кода, т. Е. При создании отчета.

То, что вы обычно делаете, это заполнение карты параметров или карт с различными настройками для вашего отчета. Я использую параметры, если у меня есть сводная страница или титульная страница (самая первая в отчете). Что-то вроде:

parameters.put("authorName", author); //where authorName is a parameter you have created in your JRXML template.

Затем вы можете использовать некоторые пользовательские "variables" или вы можете использовать переменные из JasperReports. Некоторые из этих полезных переменных: PAGE_COUNT и PAGE_NUMBER. Они отслеживают ... количество страниц отчета и номера страниц. Конечно, у вас могут быть пользовательские переменные.

Поля используются там, где данные часто меняются. Они очень похожи на параметры, но с каждой итерацией данные могут измениться. Например, поле может быть списком объектов germanCar для одной итерации и списка объектов japaneseCar для следующего. Я бы использовал поле для хранения списка объектов Car, которые могли бы измениться.

Нижняя строка - это параметры, а поля очень похожи, но поля заполняются из JasperReportDataSource (поэтому они могут часто меняться поскольку вы заполняете этот источник данных), тогда как параметры, которые вы будете использовать для титульных страниц или пользовательских настроек JR, WHILE генерируют сам отчет. Они могут быть довольно запутанными.

Надеюсь, это немного поможет!

15
ответ дан Mechkov 18 August 2018 в 11:59
поделиться
  • 1
    Благодарим вас за отличные ответы. Еще один вопрос заключается в том, чтобы данные отображались в списке, должны ли они быть в полях или говорить в стиле Java, параметры являются примитивными типами и полями для коллекций? – Dreamer 14 June 2012 в 22:48
  • 2
    Обычно параметр будет содержать объект со значением, например, String или примитивный тип. Поля могут содержать коллекцию бобов, объектов и т. Д. ... – Mechkov 15 June 2012 в 13:03
  • 3
    Могут ли поля быть переменными в количестве? Или они должны быть только статическими? Я имею в виду, может ли отчет иметь определенное количество полей в зависимости от данных, предоставленных в отчете? – Muhammad Gelbana 31 May 2013 в 16:31
  • 4
    Поле может быть объектом List. Затем, однако, сколько элементов у вас есть в вашем списке (передано из вашего приложения). – Mechkov 31 May 2013 в 16:56

Параметры - это простой ввод в JasperReports. Перед использованием вы должны определить параметры в JasperReport. Вы можете отобразить значение переменной, вы можете использовать ее как часть булевых выражений, и вы даже можете передать ее в подзаголовки. Это может быть вход в SQL-запрос.

Поля - это простые определения переменных. Вы можете рассматривать их как переменные экземпляра объекта данных, переданных в отчет, или они могут быть именами ключей, если источником данных является Карта. Если вы настроили JasperReport для создания набора данных на основе SQL, то Fields - это имена столбцов ResultSet. Вы будете использовать поля для отображения набора результатов выполненного SQL-запроса.

Переменные - это еще один вид переменных, которые живут в отчете Jasper, они не являются входами. Они используются для вычисления суммы или среднего значения определенного поля (определенного выше). Вы можете выполнять многие другие предопределенные функции вычисления в полях с использованием переменных.

18
ответ дан sperumal 18 August 2018 в 11:59
поделиться
  • 1
    Спасибо. Все образцы, которые я видел, - это параметры пропуска или результаты источника данных как поля в отчете Jasper, но как насчет экземпляра класса Java? Это нормально, если создать класс отчетов, который содержит кучу параметров и два списка полей, лучше ли передать весь экземпляр или отдельные элементы в отчет? Что лучше? Большое спасибо. – Dreamer 14 June 2012 в 22:58
  • 2
    Я думаю, что создание класса Report будет лучшим подходом. Поскольку класс Report может абстрагировать представление вашего отчета и он может выступать в качестве datamodel для отчета. – sperumal 15 June 2012 в 02:24
  • 3
    Могут ли поля быть переменными в количестве? Или они должны быть только статическими? Я имею в виду, может ли отчет иметь определенное количество полей в зависимости от данных, предоставленных в отчете? – Muhammad Gelbana 31 May 2013 в 16:30
Другие вопросы по тегам:

Похожие вопросы: