• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Xpages+postgresql

  • Автор темы JohnLemon
  • Дата начала
J

JohnLemon

Здравствуйте, сразу не пинайте, необходимо реализовать связку xpages+PostgreSQL, все данные необходимо хранить в БД PostgreSQL. Подскажите с помощью каких компонентов это можно сделать. Самые главные вопросы это как добавлять данные и как отображать ? ). Желание заказчика... переубедить бесполезно )
 
J

JohnLemon

Скачал бд как на видео. Поставил ExtLib, но не могу понять. Что написать вместо
Код:
<jdbc>
<driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
<url>jdbc:derby:${rcp.data}\derby\XPagesJDBC;create=true</url>
<user>phil</user>
<password>phil</password>
</jdbc>
И как закинуть, и куда, драйвер PostgreSQL на сервер.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
хм... ${rcp.data} может быть это: C:\Program Files\IBM\Notes\framework\rcp\
на сервере?
 
  • Нравится
Реакции: JohnLemon
J

JohnLemon

В роде разобрался, все не так сложно было, а может кто подсказать как залить файл в бд теперь ? )
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
@JohnLemon, через LEI можно
[DOUBLEPOST=1432731253,1432731078][/DOUBLEPOST]@JohnLemon, c другой стороны зачем?
чтобы базу раздуло?
Проще, а может и правильнее:
файлы сохранить в серетвую шару
в psql передать путь к файлу
при обращении к записи - открывать файл с шары
 
  • Нравится
Реакции: JohnLemon
J

JohnLemon

@JohnLemon, c другой стороны зачем?
чтобы базу раздуло?
Просто желание заказчика, переубеждать по ходу бесполезно...

Проще, а может и правильнее:
файлы сохранить в серетвую шару
Есть пример как это сделать на xpages без агента только, на ssjs?


@JohnLemon, через LEI можно
Интересный вариант, а это реально реализовать через jdbs компоненты в xpages ? или с помощью ExtLib?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
Есть пример как это сделать на xpages без агента только, на ssjs?
а почему без агента? В чем проблема с агентом?
из xpage можно же вызывать агентов...

это реально реализовать через jdbs компоненты в xpages ? или с помощью ExtLib?
не могу сказать, LEI использует Notes C API, что наводит на мысль что стандартными методами нельзя...

Есть пример как это сделать на xpages без агента только, на ssjs?
Вот тут делается загрузка, но в документ:
По логике надо заменить документ на сетевой путь, вот и всё.
 
  • Нравится
Реакции: JohnLemon
J

JohnLemon

Но все таки как можно записать файл в базу PostgreSQL?
Делаю так, что то нито )
Код:
var stream:NotesStream = session.createStream();
var pathname:string = "c:\\test.txt";
if (stream.open(pathname, "binary")) {
@JdbcExecuteQuery("derby1", "INSERT INTO test_goverment(who, files) VALUES ('anonim files', '"+stream.read()+"')");
stream.close();
} else _dump("Can't open c:\\notes\\data\\temp.gif");
Хочу записать в тип bytea.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
36
Но все таки как можно записать файл в базу PostgreSQL?
Думаю, рецептов тебе не найти - не делают так: гемор и по скорости и по потреблению памяти.
Хоть теоретически PostgreSQL и предоставляет возможность хранения в БД файлов - непосредственно в bytea полях или через large objects. Кста, там ограничение 1Гб, если не изменяет склероз.
В Post... хранят ссылки на файлы в файловой системе.

А конечную архитектуру аппликухи, всё ж, определяет прогер, а не заказчик ;)
А то придётся соглашаться, за бабки "забивать гвозди в асфальт"...
Меж строк, по твоим вопросам, предполагаю автоматизацию чего то медицинского. Я прав?
Если так, то построение её на реляционке - верёвки. Не стоит наступать на грабли в сотый раз...
И ещё, чем передавать большие файлы?? HTTP - жёсткий лимит, я бы на FTP смотрел.
К тому же, если "медицина", рано или поздно встанет вопрос о передаче\хранении DICOM файлов, а это могут быть и несколько гигов...
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
36
Будут только документы, небольшие я думаю.
Мед. доки - туева хуча разномастной инфы и дикое кол-во объёмных справочников и регламентов. И картинки с пэдээфами и дикомами.
Я ж говорю "рано или поздно..." Такшта моё ИМХО - только NoSQL.
А медики очень тяжёлые заказчики - их "логика" осмыслению не поддаётся:(
И общую картину катастрофы они озвучить не в состоянии - прогеру её надо просто знать самому и изучать тему.
 
  • Нравится
Реакции: JohnLemon
J

JohnLemon

Это я так понимаю на Java?
т.е. без штатных @JdbcExecuteQuery
как раз хотелось бы штатными средствами..
А может еще кто подсказать почему при выполнении @JdbcExecuteQuery, возникает ошибка что не может получить ответ от сервера, а запрос выполняется!
 
H

Hogmuzzle

Если актуально то отвечаю. На мой взгляд правильней всего использовать Hibernate + настройка пула соединений с помощью c3p0
Набор необходимых jar файлов
antlr-2.7.7
c3p0-0.9.2.1
commons-logging-1.3.3
dom4j-1.6.1
hibernate-c3p0-4.2.6.Final
hibernate-commons-annotations-4.0.2.Final
hibernate-core-4.2.6.Final
hibernate-jpa-2.0-api-1.0.1.Final
javassit-3.15.0-GA
jboss-logging-3.1.0.GA
jboss-transaction-api_1.1_spec-1.0.1.Final
mchange-commons-java-0.2.3.4
spring-1.2-rc1
postgresql-9.3-1102.jdbc41

postgres.cfg.xml ------------------------------------
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "[URL]http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd[/URL]">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/postrgesql</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">2128506</property>
<property name="hibernate.default_schema">public</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="hibernate.jdbc.batch_size">0</property>
<property name="hibernate.c3p0.acquire_increment">3</property>
<property name="hibernate.c3p0.idle_test_period">300</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">30</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">0</property>
</session-factory>
</hibernate-configuration>
создаем сессию вот так примерно ------------------------------------
Java:
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateUtilitiesForPostgres {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
static {
try {
Configuration configuration = new Configuration().configure("postgres.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().
applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!