Подключение с использованием JDBC драйвера
Подключение с использованием JDBC драйвера
Здравствуйте, подскажите пож., как подключить уже созданный JDBC коннект к конкретному отчету. Примеры в sample2 все пересмотрел и по своим возможностям разобрал(проект webfx), но явного использования не нашел(myloaddataactoin.java описывает только подключение)
В tegs.jsp прописал
<li><stiviewerfx:link text="My first Report" report="MyFirstReport.mrt" /></li>, но каким образом к этому отчету подключить connect jdbc так и не понял.
В tegs.jsp прописал
<li><stiviewerfx:link text="My first Report" report="MyFirstReport.mrt" /></li>, но каким образом к этому отчету подключить connect jdbc так и не понял.
Re: Подключение с использованием JDBC драйвера
Здравствуйте.
Для подключения своего класса загрузки необходимо его подключить в классе ApplicationInitializer следующим образомЗа получения JDBC соединение отвечает метод
Вам надо его переопределить и использовать согласно вашей задачи. Вы можете использовать ключ для переопределения строку подключения как в примере needOverride или DataSourceName. В примере это DataSourceOverride если это не подходит, то сформулируйте более подробно вашу проблему.
Спасибо.
Для подключения своего класса загрузки необходимо его подключить в классе ApplicationInitializer следующим образом
Код: Выделить всё
StiConfig stiConfig = new StiConfig(stiDir);
stiConfig.setLoadDataClass(MyLoadDataAction.class);
Код: Выделить всё
protected Connection getConnection()
Спасибо.
- Вложения
-
- MyLoadDataAction.zip
- (832 байт) 427 скачиваний
Re: Подключение с использованием JDBC драйвера
В строке stiConfig.setLoadDataClass(MyLoadDataAction.class);
пишет, что такого метода setLoadDataClass нет. Класс com.stimulsoft.StiConfig импортирован.
Я чего-то не понял или же в поставку что-то не вошло?
Зараннее извиняюсь, если вопрос в моей компетенции, но я только начала осваивать jawa.
пишет, что такого метода setLoadDataClass нет. Класс com.stimulsoft.StiConfig импортирован.
Я чего-то не понял или же в поставку что-то не вошло?
Зараннее извиняюсь, если вопрос в моей компетенции, но я только начала осваивать jawa.
Re: Подключение с использованием JDBC драйвера
В продолжении вопроса. Разбирая пример в проекте webfx в классе ApplicationInitializer есть использование
.....
StiWebReport.init(stiConfig)
......
но import com.stimulsoft.StiWebReport; не получается из-за отсутствия оного.
.....
StiWebReport.init(stiConfig)
......
но import com.stimulsoft.StiWebReport; не получается из-за отсутствия оного.
Re: Подключение с использованием JDBC драйвера
Отвечу сам на свои вопросы
Я скачаивал приобретенный генератор отчетов StimulSoft 27.09.2012, библиотеки в его архиве были датированы 10.04.2012.
Сейчас скачал тот же архив по новой. Библиотеки уже стали намного свежей и больше,- датированы 18.09.2012. Видно не успели админы выложить новые
Главное, что теперь указанные ошибки пропали
Я скачаивал приобретенный генератор отчетов StimulSoft 27.09.2012, библиотеки в его архиве были датированы 10.04.2012.
Сейчас скачал тот же архив по новой. Библиотеки уже стали намного свежей и больше,- датированы 18.09.2012. Видно не успели админы выложить новые
Главное, что теперь указанные ошибки пропали
Re: Подключение с использованием JDBC драйвера
Прошу дальнейшей помощи. Все (вроде бы) сделал как написано и в том числе по примеру. Но как в новом отчете на DataBand выбрать DataSource(созданный connect JDBC)? Сейчас в DataSetup отображается только х[Not Assigned].
Re: Подключение с использованием JDBC драйвера
Немного детальней опишу проблему.
1) В класс ApplicationInitializer я добавил
...
File stiDir = new File("C:/Stimulsoft");
StiConfig stiConfig = new StiConfig(stiDir);
stiConfig.setLoadDataClass(Connect_To_DB.class);
...
2) Connect_To_DB.class - это мой класс, в котором я сделал connection JDBC используя JDBC драйвер. Пример был взят с MyLoadDataAction
3) Насколько я правильно понимаю, теперь при создании отчета(в дизайнере) мне нужно определить новое соединение JDBC, в котором в строку соединения добавить примерно такой синтаксис:
jdbc.driver=Имя JDBC драйвера;
jdbc.url=Соединение;
jdbc.username=Имя пользователя;
jdbc.password=Пароль пользователя;
Если так, то что я ни добавлял в jdbc.driver - все равно получал ошибку
Error java.lang.IllegalArgumentException : In connection options {......} not found driver name
Прошу помочь разобраться.
1) В класс ApplicationInitializer я добавил
...
File stiDir = new File("C:/Stimulsoft");
StiConfig stiConfig = new StiConfig(stiDir);
stiConfig.setLoadDataClass(Connect_To_DB.class);
...
2) Connect_To_DB.class - это мой класс, в котором я сделал connection JDBC используя JDBC драйвер. Пример был взят с MyLoadDataAction
3) Насколько я правильно понимаю, теперь при создании отчета(в дизайнере) мне нужно определить новое соединение JDBC, в котором в строку соединения добавить примерно такой синтаксис:
jdbc.driver=Имя JDBC драйвера;
jdbc.url=Соединение;
jdbc.username=Имя пользователя;
jdbc.password=Пароль пользователя;
Если так, то что я ни добавлял в jdbc.driver - все равно получал ошибку
Error java.lang.IllegalArgumentException : In connection options {......} not found driver name
Прошу помочь разобраться.
Re: Подключение с использованием JDBC драйвера
Здравствуйте.
Посмотрите, пожалуйста, наши обучающие видео Quick Start for Reports.Fx http://www.stimulsoft.com/en/videos
Спасибо.
Посмотрите, пожалуйста, наши обучающие видео Quick Start for Reports.Fx http://www.stimulsoft.com/en/videos
Спасибо.
Re: Подключение с использованием JDBC драйвера
Здравствуйте.
Если вы ходите создавать JDBC Connection, то вам нужно создавать и возвращать его в методе
protected Connection getConnection() вашего класса подключения Connect_To_DB.class
если у вас одно подключени то вы можете воспользоваться приведенным в примере кодом:где вам нужно указать ваш driver, user, password и connectionString(он же jdbc.url)
Если вы не хотите из java кода его создавать, то вам не нужно создавать свой класс с подключением, вам все эти параметры надо указать в соединении JDBC в формате: и подключение будет автоматическим.
Спасибо.
Если вы ходите создавать JDBC Connection, то вам нужно создавать и возвращать его в методе
protected Connection getConnection() вашего класса подключения Connect_To_DB.class
если у вас одно подключени то вы можете воспользоваться приведенным в примере кодом:
Код: Выделить всё
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Properties info = new Properties();
info.setProperty("user", "test");
info.setProperty("password", "test");
String connectionString = "jdbc:sqlserver://localhost\\SQLEXPRESS1:1433;databaseName=mybase;";
return DriverManager.getConnection(connectionString, info);
Если вы не хотите из java кода его создавать, то вам не нужно создавать свой класс с подключением, вам все эти параметры надо указать в соединении JDBC в формате:
Код: Выделить всё
jdbc.driver=Имя JDBC драйвера;
jdbc.url=Соединение;
jdbc.username=Имя пользователя;
jdbc.password=Пароль пользователя;
Спасибо.
Re: Подключение с использованием JDBC драйвера
Здравствуйте, я все так и делал, но результат тот же. Вариантов, почему не работает больше не вижу.
Опишу подробно по действиям:
ВАРИАНТ 1.
1) ОС Windows 7, локальный сервер Tom Cat 7.* , среда разработки Eclipse EE Helios, java sdk 1.6.035
2) Запустил локально пример web fx, затем в меню Sample JSP tag, Designer, выбрал link jsp teg designer ,- открылся дизайнер отчета.
3) Затем в Dictionary, New connection выбрал jdbc Connection, в connection string прописал напрямую
jdbc.driver=rssbus.jdbc.salesforce;
jdbc.url=jdbc:salesforce:User=********;Password=*********;Access Token=********;
Пробовал и отдельно выводить все паратмеры соединения, результат один
In connection options ......not found 'driver name'
Драйвер rssbus.jdbc.salesforce.jar подключен вместе в lib вместе с библиотеками ReportsFx
ВАРИАНТ 2.
При использовании метода protected Connection getConnection() сделано следующим образом:
public class Connect_To_DB extends LoadDataAction {
protected Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("rssbus.jdbc.salesforce.SalesforceDriver");
String connectionString = "jdbc:salesforce:User=*****;Password=*****;Access Token=******;";
return DriverManager.getConnection(connectionString);
}
}
И в ApplicationInitializer добавлено
public class ApplicationInitializer implements ServletContextListener {
public void contextInitialized(final ServletContextEvent event) {
try {
File stiDir = new File("C:/Stimulsoft");
StiConfig stiConfig = new StiConfig(stiDir);
stiConfig.setLoadDataClass(Connect_To_DB .class);
StiWebReport.init(stiConfig);
}
}
Правда в последнем варианте, не ясно как это должно быть использовано в New connection...
Прошу помощи, если проблема в моей компетенции, готов окупить Ваше время всеми приемлемыми способами.
Опишу подробно по действиям:
ВАРИАНТ 1.
1) ОС Windows 7, локальный сервер Tom Cat 7.* , среда разработки Eclipse EE Helios, java sdk 1.6.035
2) Запустил локально пример web fx, затем в меню Sample JSP tag, Designer, выбрал link jsp teg designer ,- открылся дизайнер отчета.
3) Затем в Dictionary, New connection выбрал jdbc Connection, в connection string прописал напрямую
jdbc.driver=rssbus.jdbc.salesforce;
jdbc.url=jdbc:salesforce:User=********;Password=*********;Access Token=********;
Пробовал и отдельно выводить все паратмеры соединения, результат один
In connection options ......not found 'driver name'
Драйвер rssbus.jdbc.salesforce.jar подключен вместе в lib вместе с библиотеками ReportsFx
ВАРИАНТ 2.
При использовании метода protected Connection getConnection() сделано следующим образом:
public class Connect_To_DB extends LoadDataAction {
protected Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("rssbus.jdbc.salesforce.SalesforceDriver");
String connectionString = "jdbc:salesforce:User=*****;Password=*****;Access Token=******;";
return DriverManager.getConnection(connectionString);
}
}
И в ApplicationInitializer добавлено
public class ApplicationInitializer implements ServletContextListener {
public void contextInitialized(final ServletContextEvent event) {
try {
File stiDir = new File("C:/Stimulsoft");
StiConfig stiConfig = new StiConfig(stiDir);
stiConfig.setLoadDataClass(Connect_To_DB .class);
StiWebReport.init(stiConfig);
}
}
Правда в последнем варианте, не ясно как это должно быть использовано в New connection...
Прошу помощи, если проблема в моей компетенции, готов окупить Ваше время всеми приемлемыми способами.