powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java. работа с базами(взгляд Delphi-ста)
25 сообщений из 258, страница 10 из 11
Java. работа с базами(взгляд Delphi-ста)
    #36668709
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123у твоей жены дома комбайн есть?
если так ставить вопрос (разделяя "твоё-моё" в семье), то я отвечу - х.й его (или её ) знает
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36668741
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример, где-то в книге похожее видел:

Код: plaintext
1.
2.
3.
4.
5.
6.
String GetRocketName()
{
  String s = "MyRocket";
  LaunchRocket(); //запустить ракету
   return  s;
}

Функция, судя по названию, должна возвращать имя ракеты.
А она еще и ее запускает. Вот обрадуется программист, когда он захочет получить имя ракеты, а она у него вдруг неожиданно взлетит.
Поэтому важно, чтобы функции, классы выполняли строго свои обязанности и не брали на себя чужих функций и не совмещали.
Программисту легче будет, когда будет порядок.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36668786
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, MAYAKOV_SV!

> Функция, судя по названию, должна возвращать имя ракеты.
> А она еще и ее запускает.

Ещё в Аде был запрет на изменение состояния в функции. Только в
процедуре. Очень правильно.

....и пошёл вызывать ResultSet.next()...

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36668808
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SV, выкинь книгу

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Класс = Ракета
{
Конструктор.НастартовуюПлощадку

function Запустить
function СлитьБензин

Property ИмяКосмонавта

}
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36668844
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Конструктор.НастартовуюПлощадку

В конструкторе действия производятся?
Странно.
Petro123
function Запустить
function СлитьБензин

Автор выше говорил:

Ещё в Аде был запрет на изменение состояния в функции. Только в
процедуре.

Petro123
Property ИмяКосмонавта

Можно и так. Но я бы косманавта вывел в отдельную сущность.
Так же сделал бы сущность "полет" в которой указал бы ссылки на ракету и космонавта.
Ведь космонавт не составная часть ракеты...

Простите за критику.
Да и я отвлекся от темы топика...
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36668919
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SVPetro123
Конструктор.НастартовуюПлощадку

В конструкторе действия производятся?
Странно.
=========
Constructor Na_Start('Гагарин')
{
private sName = 'Гагарин'
}
Petro123
function Запустить
function СлитьБензин

Автор выше говорил:

Ещё в Аде был запрет на изменение состояния в функции. Только в
процедуре.

==== я не понял о чём он
Petro123
Property ИмяКосмонавта

Можно и так. Но я бы косманавта вывел в отдельную сущность.

=== а у меня он набор символов :)
У двух поваров - разный супец.

Так же сделал бы сущность "полет" в которой указал бы ссылки на ракету и космонавта.
Ведь космонавт не составная часть ракеты...

====== прочитайте про моделирование, и отличие МОДЕЛИ от реального мира


удачи!
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669101
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
>=== а у меня он набор символов :)

А если вам потом нужно будет добавить рост косманавта, его фото, образование, стаж работы?
Нужно интерфейс класса ракеты будет переделывать?
В вашем варианте просто идет совмещение сущностей ракеты и косманавта в одном классе.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669194
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
с чего ты взял, что программисту-пользователю такой иерархией удобно ПОЛЬЗОВАТЬСЯ на прикладном уровне?пусть попробует. "непривычно" - не аргумент.

Petro123
у твоей жены дома комбайн есть?
Или DVD \ кинотеатр?
ну и? в указанных устройствах группы деталей отвечают каждая за свою функцию. двд-кинотеатр состоит из телевизора, колонок и двд-проигрывателя. каждый из компонент может быть использован отдельно или скомбинирован с чем-то еще (компьютер, av-ресивер). а теперь представь, что двд-кинотеатр это монолитная конструкция.

Petro123

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Класс = Ракета
{
Конструктор.НастартовуюПлощадку

function Запустить
function СлитьБензин

Property ИмяКосмонавта

}


и тут у нас появляется новый вид ракет, на твердом топливе, без космонатвов. что будет делать функция "слить бензин" и свойство "имя космонавта", IllegalStateException кидать?

не лучше ли иметь классы ракета, космонавт, топливо и стартовая площадка? глядишь и каждый в отдельности пригодится.

ООП хорошо, но композиция вместо наследования, тоже не плохо. всего в меру.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669414
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Н-да, ООП моделирование/проектирование не плохо бы вам повторить.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669528
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
Petro123
у твоей жены дома комбайн есть?
Или DVD \ кинотеатр?
ну и? в указанных устройствах группы деталей отвечают каждая за свою функцию. двд-кинотеатр состоит из телевизора, колонок и двд-проигрывателя. каждый из компонент может быть использован отдельно или скомбинирован с чем-то еще (компьютер, av-ресивер). а теперь представь, что двд-кинотеатр это монолитная конструкция.

===== ты не понял. Кухонный комбайн у тебя есть. И он пользуется спросом. Когда его покупают, то никто не жалеет, что есть доп.функция которая никому не нужна. Это просто бонус (Mpeg5 и радио в DVD, тестомесилка в комбайне)
Petro123

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Класс = Ракета
{
Конструктор.НастартовуюПлощадку

function Запустить
function СлитьБензин

Property ИмяКосмонавта

}


и тут у нас

======= в ТЗ? Если заказчик не оговорил что в его аптеке будут торговать автозапчасями по ЕСКД. То он вычтет деньги за усложнение проекта.

появляется новый вид ракет, на твердом топливе, без космонатвов. что будет делать функция "слить бензин" и свойство "имя космонавта",

====== все опции реального мира не учтёшь :)

ООП хорошо, но композиция вместо наследования, тоже не плохо. всего в меру.
конечно всё в меру. И строго по ТЗ (хотя бы в кабаке на салфетке).

Композиция применяется в строго определённых случаях. И строго по паттернам.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669547
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте не будем из РСУБД делать EAV.
Из проекта упрощённой модели бизнеса делать чудо-юдо-гидро-самолёт.
Саморазмножающуюса модель на указателях \ интерфейсах и слабо-связанной самобранки.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669596
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты не понял. Кухонный комбайн у тебя есть. И он пользуется спросом. Когда его покупают, то никто не жалеет, что есть доп.функция которая никому не нужна. Это просто бонус
это тоже спорно. иногда (очень часто) обилие функций очень мешает и усложняет понимание, как пользоваться только тем, что надо. я не буду разводить полемику о том, на сколько это касается грида, но это была так, заметка в общем. кроме того стоит добавить, что очень часто вещь, делающая одну функцию, делает ее гораздо лучше чем "мастер на все руки".


Petro123
в ТЗ? Если заказчик не оговорил что в его аптеке будут торговать автозапчасями по ЕСКД. То он вычтет деньги за усложнение проекта.
ну аптека и запчасти это не совсем тоже что ракета и два вида топлива ;) . я лишь намекнул, что в твоем случае класс спроектирован без возможности расширения и модификации в будущем, согласись, что это не есть гуд, даже если в ТЗ речь только о бензине. ты с теми же затратами мог выбрать не "супер класс" , а композицию, убив сразу двух зайцев. в противном случае, задача расширения функционала заметно усложняется. как и тестирование компонент по отдельности.


Petro123все опции реального мира не учтёшь :)
никто и не претендует на то, чтобы создавать совершенную архитектуру с первого раза. именно потому, что все опции реального мира сразу не учтешь, нужно изначально возможность расширения ставить во главу угла.

Petro123
Композиция применяется в строго определённых случаях. И строго по паттернам.
imho композиция это и есть паттерн. естественно ее нужно применять там где надо. так же как и наследование.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669740
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaPetro123ты не понял. Кухонный комбайн у тебя есть. И он пользуется спросом. Когда его покупают, то никто не жалеет, что есть доп.функция которая никому не нужна. Это просто бонус
это тоже спорно. иногда (очень часто) обилие функций очень мешает и усложняет понимание, как пользоваться только тем, что надо.

======= для этого есть ИНКАПСУЛЯЦИЯ. Тебе не нужно знать ВСЕ функции. Они скрыты 5-10-ом колене
(ПростоОбъект - Объект имеющий хэндл_окна - Объект имеющий HDC-канву - Сетка_грида - .....)
Точку кастомизации надо искать по вертикали, а не по горизонтали.
я не буду разводить полемику о том, на сколько это касается грида, но это была так, заметка в общем. кроме того стоит добавить, что очень часто вещь, делающая одну функцию, делает ее гораздо лучше чем "мастер на все руки".

==== согласен. Я только против грида-сетки-импотента в данном смысле.
Мастер на все руки "Девки" делают свою работу хорошо для 95 процентов проектов.

нужно изначально возможность расширения ставить во главу угла.

Во главу угла ставится баланс и рациональность.
Т.к. в ООП наследование и композиция - противоположные вещи .
PS
модульность (расширяемость) всегда противоположна концепции "чёрного ящика" объекта в ООП.
PS.PS
"Сложнее всего в мире достигнуть простоты - это крайняя граница опыта и последнее усилие гения".
George Sand.

Удачи!
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669761
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, Petro123!

> Т.к. в ООП *наследование *и *композиция *- _противоположные вещи_.

Перпендикулярные.

> модульность (расширяемость) всегда противоположна концепции "чёрного
> ящика" объекта в ООП.

Наоборот. Прочитай хорошую книжку по основам ООП.
PS: я знаю одну. И в ней не про яву.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36669826
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara,
вместо сотрясания воздуха, пиши просто -1.
И не флеймь.
Удачи!
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36670043
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
imho композиция это и есть паттерн. естественно ее нужно применять там где надо. так же как и наследование.
Композиция, в достаточной степени делегирование и наследование это не паттерны, а базовые элементы ООД ((туго соображаю, лучше не придумал). А вот совокупность используемого насследования, композиции и делегирования дает паттерны.

Тут, конечно, больше демагогии, но все-таки паттерны по GoF это некоторые приемы, позволяющие решать определенные, часто встречающиеся, задачи проверенным и достаточно универсальным способом.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36670052
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaопции реального мира сразу не учтешь, нужно изначально возможность расширения ставить во главу угла.
Не согласен. Если мы заложим в систему слишком большую гибкость к расширениям, она будет очень сложной и 90% заложенной гибкости не понадобится. Поэтому лучше кодировать исходя из текущих задач, закладывая фундамент под ожидаемые на следующей итерации но не слишком стараться. Хороший код отрефачить и добавить нужной гибкости в современных IDE достаточно просто.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #36670112
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv
Не согласен. Если мы заложим в систему слишком большую гибкость к расширениям, она будет очень сложной и 90% заложенной гибкости не понадобится.ну тут нужно действовать без фанатизма, никто не говорит об абсолютной гибкости.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Java. работа с базами(взгляд Delphi-ста)
    #37645671
Rustam Ergashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как можно организовать соединение с Oracle базой через jsp.
после Делфи мне тоже трудно это понять.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37645682
svenom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rustam Ergashev ,
Написать соответствующий класс. Какой вопрос - такой и ответ
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37646512
m77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rustam Ergashev,

Просто jsp - это не связь с БД...

Связь с БД осуществляется через прослойку - JPA, Hibernet и Ко... Тут часто мелькают ссылки на видеолекции Ткача - там все слои довольно доходчиво и просто вкртаце описываются - и слой представления и слой работы с БД. Это хорошо посмотреть для ознакомления. Описываете свою БД в такой прослойке - таблицы, взаимосвязи между таблицами и пр. - и обращаетесь к данным средствами прослойки.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37646527
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenom Rustam Ergashev ,
Написать соответствующий класс. Какой вопрос - такой и ответ
svenom - хорошо написал.
Это, в некотором роде, тест на серьёзность намерений перехода на Java.
1-2 класса написать по любому надо. а потом можно и конкретнее
Без ООП тут никуда.
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37646578
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m77Rustam Ergashev,

Просто jsp - это не связь с БД...

Связь с БД осуществляется через прослойку - JPA, Hibernet и Ко... Тут часто мелькают ссылки на видеолекции Ткача - там все слои довольно доходчиво и просто вкртаце описываются - и слой представления и слой работы с БД. Это хорошо посмотреть для ознакомления. Описываете свою БД в такой прослойке - таблицы, взаимосвязи между таблицами и пр. - и обращаетесь к данным средствами прослойки.
Можно без прослойки и даже формально без класса. Прямой вызов JDBC в теле JSP - и все. Криво, уродливо, некрасиво, но если надо за 10 минут слабать одноразовое приложение, удаленно прогоняющее скрипт по БД и выводящее некую статистику - пойдет. Например, ежели по неким причинам доступа к СУБД нету, зато на сервере заведен системный DataSource
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37648311
Rustam Ergashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы
Вот так я соединился и получил результат но это меня не удовлетворил и поэтому такой вопрос был хотя вопрос не такой уж конкретный
Код: java
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.
<%@page contentType="text/html; charset=Windows-1251"%>
<%@page import='java.sql.*, javax.sql.*, javax.naming.*' %>
<html>
<body>
<%
String user = "test";
String password = "test";
String database = "test";
String server = "localhost";
String port = "1521";
String mfo = request.getParameter("code");
String date1 = request.getParameter("date1");
String date2 = request.getParameter("date2");

String url = "jdbc:oracle:thin:@" + server + ":" + port + ":" + database;
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url, user, password);
conn.setAutoCommit(false);

try {

Statement stmt = conn.createStatement();
String sele = ("select t.oper_day, t.account_code, t.saldo_equival_in, t.saldo_equival_out from saldo t where t.code='"+code+"' and t.oper_day between to_date('"+date1+"','dd.mm.yyyy') and to_date('"+date2+"','dd.mm.yyyy')");
ResultSet rs = stmt.executeQuery(sele);
%>
<table border="1" cellspacing="2" cellpadding="2" align="center">
<tr align="center" bgcolor="#b1c1c1">
<td>Day</td><td>Account</td><td>Saldo_in</td><td>Saldo_out</td><td>Debit</td><td>Credit</td></tr>
<%
int nstr=0;
while (rs.next()) {
%><tr bgcolor="#cccccc"><td><%out.println(rs.getString("oper_day"));
%></td><td><%out.println(rs.getString("account_code"));
%></td><td><%out.println(rs.getString("saldo_equival_in"));
%></td><td><%out.println(rs.getString("saldo_equival_out"));
%></td></tr><%
nstr++;

}//while

} finally {
conn.close();
}
%>

</table>
</body>
</html>



Можете показать как организовать правильное обращение к базе. Или где можно почитать.
авторТут часто мелькают ссылки на видеолекции Ткача
подробные можете сказать
Спасибо зарание
...
Рейтинг: 0 / 0
Java. работа с базами(взгляд Delphi-ста)
    #37648336
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rustam ErgashevМожете показать как организовать правильное обращение к базе. Или где можно почитать.
тебе уже сказали - написать пару классов. Например, в сервлете.
Т.е. бить твою одну большую простынь JSP на ООП куски.
...
Рейтинг: 0 / 0
25 сообщений из 258, страница 10 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / Java. работа с базами(взгляд Delphi-ста)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]