Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Студенческий отдел кадров


Автор: AntonSaburov 2.10.2006, 16:23
Я начал цикл статей по технологиям JAVA. Цель и идея рассмотрены в первой статье.

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

ВНИМАНИЕ !!! На сегодня есть проблемы с публикацией, так что заходите вот сюда

http://java-course.ru/students/students.php

Автор: batigoal 2.10.2006, 21:38
Отличная инициатива!

Автор: integral 2.10.2006, 23:13
Я за!!!

Автор: COVD 3.10.2006, 00:25
Цитата

Насколько нужен такой дайджест ...


Мне последнее время стал интересен вопрос - какие мотивы написания статей и книг у программистов. В вашем случае ответ казалось бы дан в начале статьи - вы преподаете и у вас естественная потребность иметь учебный материал, в частности, учебный проект "Студенческий Отдел Кадров", на примере которого шаг за шагом можно изложить теорию и практику. Тогда почему вы интересуетесь актуальностью такого проекта на форуме? Не вам ли это нужно прежде всего для преподавания и не вам ли знать свои потребности, на основании которых только и можно решить, браться ли за такую большую работу или адаптировать существующие курсы (если есть) под ваши нужды?  

Критиковать - дело не хитрое, но все же.. Первый абзац - это Введение. Потом глава - общее описание учебного проекта.  И только потом "Коллекции","Синхронизации", и т.д. И слово "классно" я бы в тексте не употреблял  smile . 

Автор: LSD 3.10.2006, 09:52
Отличная идея! Теперь будет что ответить на вопрос: "С чего начать?" smile

Автор: AntonSaburov 3.10.2006, 12:40
Цитата(COVD @  3.10.2006,  00:25 Найти цитируемый пост)
В вашем случае ответ казалось бы дан в начале статьи - вы преподаете и у вас естественная потребность иметь учебный материал

Я - профессинальный разработчик. Преподаванием занимаюсь по причине полного отсутствия в университете, который я закончил много лет назад и в котором какое-то время работал, каких-либо толковых преподавателей по информатике. Будем считать это спонсорской помощью. Потому как будучи старшим преподавателем на кафедре оклад мой равен меньше 2500 рублей. Точно я никогда не интересовался - на телефон трачу да сынишке в игрозону сходить.
Кроме того - преподаю я на Средне-Техническом Факультете (СТФ - есть у нас такой) - это школьники 10-11 классов. И дать им что-то реальное имея 2 пары в неделю - не реально. Хорошо, если они еще просто поймут общую идею программирования. Уже будет хорошо. Конечно, встречаются ребята, которым это интересно и им я помогаю уже в свободное время. Но подавляющая масса - на понимание оператора if уходит 3 недели.
Даже очень хорошая группа уходит не дальше, чем коллекции и работа с базой. И какое-то понятие о GUI. Это огромное достижение за 2 года. Большинство групп еле-еле осваивают основные конструкции.
Так что говорить о том, что это делается для преподавания - в моем случае это не так.

Может быть когда-нибудь у меня будет много денег и свободного времени и я создам Университет Компьютерных Технологий - но это пока только мечты smile

Цитата(COVD @  3.10.2006,  00:25 Найти цитируемый пост)
Мне последнее время стал интересен вопрос - какие мотивы написания статей и книг у программистов.

Я думаю, что во-первых амбиции. Без этого вряд ли кто-то писал вообще.
Во-вторых - испытывая большое увлечение своей работой в какой-то момент появляется желание поделиться этим удовольствием с другими. А кроме удовольствия есть еще опыт, который не жалко отдать. Мы же приходим на форум уже годами, поддерживаем атмосферу, помогаем. Ведь имено благодаря энтузиастам этот форум на сегодня один из самых сильных в Рунете по JAVA.
Да и чем больше профессиональных людей - тем лучше.

Цитата(COVD @  3.10.2006,  00:25 Найти цитируемый пост)
Тогда почему вы интересуетесь актуальностью такого проекта на форуме? Не вам ли это нужно прежде всего для преподавания и не вам ли знать свои потребности, на основании которых только и можно решить, браться ли за такую большую работу или адаптировать существующие курсы (если есть) под ваши нужды?  

Потому что здесь все больше появляется людей, которым интересна JAVA и которые пока еще не так хорошо с ней знакомы. Для них являются загадкой большое количество применений этой технологии. И вот именно для них я начал этот проект.

Как обычно происходит процесс знакомства с чем-то новым ? Постараюсь передать мои собственные ощущения.

Этап 1. Туман кругом, где границы, куда идти, зачем эта фигня нужна ? Где-то разбросаны островки, которые предназначены для каких-либо решений. Спросил на форуме - отослали к документации и посоветовали задавать конкретные вопросы.
Этап 2. Начинаем читать все подряд, ползать по форумам. Через какое-то время делаем первый пример простого применения.
Этап 3. Пытаемся очертить границы и классифицировать островки. Налаживаем тоненькие мостики между ними. На этом этапе мы уже можем сказать какие задачи возможны и что у нас есть из инструментария. Хотя знания еще не так прочны, но туман уже не так мешает. Можем спросить конкретный вопрос. И тогда наступает
Этап 4. Мы уже знаем где что искать, мы уже проложили маленькие мостики между всеми островками и теперь превращаем их в широкие дороги.
Этап 5. Это уже профессиональное владение материалом. Мы вникаем в тонкости, задачи наши становятся уже очень большими. И можно сказать, что мы - гуру в данной области.

И как мне показалось, такой вот дайджест, который бы на примерах провел бы за ручку и показал мне основные возможности - это было бы удобно. Поэтому появилась мысль создать такое. Фактически забросить человека сразу на этап 3, минуя страшные 1-й и 2-й. Потому что именно эти два часто полностью отбивают желание что-либо делать.

Кроме этого - как часто мы слышим вопросы: "Помогите обосновать выбор JAVA. Что я могу сделать на JAVA"
Очень часто. А что мы пишем в ответах ? Пытаемся быстренько сказать, что JAVA может работать и с базами, и GUI есть. А уж Интернет решения - это же просто обалдеть. И все. Большее не успеть - отвечаем мы в свободное время и его у нас не так уж много. И просим задавать уже конкретные вопросы.

Цитата(COVD @  3.10.2006,  00:25 Найти цитируемый пост)
И слово "классно" я бы в тексте не употреблял

Об этом я сам думал Тем более, что уже есть ошибки, которые надо исправлять.

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


Цитата(LSD @  3.10.2006,  09:52 Найти цитируемый пост)
Отличная идея! Теперь будет что ответить на вопрос: "С чего начать?"

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

Автор: powerOn 3.10.2006, 13:06
AntonSaburov, а какие статьи планируются быть написанными в дальнейшем? 
Какая тематика будет в них затронута? 
Это будет Ваш личный проект или в нем сможет принять участие любой желающий, в качестве писателя/критика (тогда бы получилось что то вроде Vingrad Java Tutorial  smile)? 



Автор: tux 3.10.2006, 13:23
Антон, за одну идею глубочайший респект. На мой взгляд идеальным конечным результатом стал бы туториал, созданный сообществом как начинающих, так и опытных участников сообщества, принимающих участие хотя бы в качестве критиков. Опытные знают как и что, а начинающие еще помнят насколько сложно изучать с нуля. smile

У меня самого приличный опыт преподавания в вузе (правда не Java), прекрасно представляю как обстоит дело с преподавателями IT. И если в Питере с ними беда, что тогда говорить об Улан-Удэ. Думаю такой материал помог бы очень многим. В перспективе с удовольствием помог бы.

Автор: AntonSaburov 3.10.2006, 13:46
Цитата(powerOn @  3.10.2006,  13:06 Найти цитируемый пост)
AntonSaburov, а какие статьи планируются быть написанными в дальнейшем?

Конечно существует предварительный план smile
На сегодня он выглядит следующим образом (конечно названия могут меняться и что-то может добавляться или наоборот):

- Введение
- Часть 1 - Коллекции
- Часть 2 - Как ныне сбирается (статья о сборке проектов. Сведения об IDE, Maven и конечно же Ant)
- Часть 3 - Базы данных - JDBC в действии
- Часть 4 - Объекты для базы данных - Hibernate
- Часть 5 - GUI - визуальные компоненты Swing
- Часть 6 - Тестирование как стиль жизни (JUnit, DBUnit, TestNG)
- Часть 7 - Оставляйте следы везде (Основы log4j)
- Часть 8 - Не послать ли нам гонца (отсылка почты)
- Часть 10 - Выходим в большой мир. Web-интерфейс - Servlets, JSP, JSTL, JSF. Достаточно большая статья. Возможно надо будет разделить.
- Часть 11 - Web-Services
- Часть 12 - Enterprise Java Beans

Насколько получится его осуществить - не знаю. Буду стараться.

Цитата(powerOn @  3.10.2006,  13:06 Найти цитируемый пост)
Это будет Ваш личный проект или в нем сможет принять участие любой желающий, в качестве писателя/критика (тогда бы получилось что то вроде Vingrad Java Tutorial

Несомненно критика принимается и я очень надеюсь, что текст (даже опубликованный) будет постоянно дорабатываться.

Идея на счет Vingrad Java Tutorial - очень интересна и если у кого-то будет желание написать что-то из вышеперечисленного - буду рад. 

Автор: tux 3.10.2006, 13:51
Часть №4 мог бы написать если сроки не сжатые (вдруг ты решил закончить все за два месяца), тем более что давно мысль болтается в голове, но все никуда не пристанет. smile

Автор: batigoal 3.10.2006, 14:20
Антон, это очень масштабный замысел. Конечно, хотелось бы получить на выходе "просто о сложном", но ты уверен, что такие серьезные вещи заинтересуют начинающего? Например, кончепция JUnit мне не понятна и по сей день, а я уже не совсем новичок. Или ты такую цель перед собой и ставишь - показать наиболее интересные и продвинутые вещи, пускай и на уровне HelloWorld?

Автор: AntonSaburov 3.10.2006, 14:40
Цитата(tux @  3.10.2006,  13:51 Найти цитируемый пост)
Часть №4 мог бы написать если сроки не сжатые (вдруг ты решил закончить все за два месяца)

С удовольствием - в принципе интерфейс к получению данных уже описан и сами объекты тоже. Так что если есть возможность - буду очень признателен.
По поводу сроков - я вряд ли смогу писать быстрее одной части за две-три недели. Так что время есть smile

Цитата(batigoal @  3.10.2006,  14:20 Найти цитируемый пост)
Антон, это очень масштабный замысел. Конечно, хотелось бы получить на выходе "просто о сложном", но ты уверен, что такие серьезные вещи заинтересуют начинающего?

Так начинаем мы с простого. Это раз. 
Во-вторых - если внимательно посмотреть, то ничего реально сложного во всех технологиях JAVA нет - они логичны и понятны. Надо только правильно расставить акценты и дать понятный и очевидный пример. Часто примеры выдумывают без связи с каким-либо контекстом и они получаются надуманными и непонятными. А когда очевидна задача и данная технология к ее решению подходит (ЭТО ОБЯЗАТЕЛЬНО - иначе фигня получается), то объяснять гораздо проще, да и читателю понятнее.
Как это получится у нас - не знаю. Но это еще одна причина пробовать реализовать - сделать лучше, чем до тебя smile

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

Да и если постигнет нас неудача - пока не попробуем, не узнаем. Аналогов такого плана я пока для JAVA не видел. Надо пробовать.

Автор: y3u 3.10.2006, 15:06
Эх, я вот так вижу "идеальный" тьюторил для начинающего программистега на JAVA

- 1 - JAVA applications types, command line distribution, automated building technologies
- 2 - Debugging introduction (including logging)
- 3 - Collections framework, annotations and generics understanding
- 4 - Code design and code style patterns. POJO programming style
- 5 - Stand alone applications introduction (SWING framework, LAF technology) 
- 6 - WEB applications technologies:
    6.1 - Servlet API
    6.2 - JSP, JSTL 
    6.4 - Model2 frameworks introduction (maverick, struts, JSF etc...)
    6.5 (optional) - javax.mail API (including as EJB session bean pattern)

- 7 - Data Bases and SQL introduction
- 8 - JDBC in action
- 9 - Hibernate framework, HSQL introduction
- 10 - EJB design patterns
- 11 - SOAP, WSDL, Axis etc.

вот как-то так...

Автор: AntonSaburov 3.10.2006, 15:39
Цитата(y3u @  3.10.2006,  15:06 Найти цитируемый пост)
Эх, я вот так вижу "идеальный" тьюторил для начинающего программистега на JAVA

Так это ничем не отличается от моей программы - разве что несколько больше внимания уделено вопросам проектирования.

Так что если есть желание - присоеденяйся. Хотя бы в качестве критика.

Автор: COVD 3.10.2006, 15:42
Цитата

Аналогов такого плана я пока для JAVA не видел. 


А в чем особенность - то ? Вы хотите написать учебник или учебное пособие. Учебников по JAVA наверное много. Вы хотите построить изложение материала на примере одного проекта. Такой прием тоже в мировой литературе встречается. Наверное, прежде всего хорошо бы обозначить основные отличия задуманного от уже существующего. Например, чем это будет отличаться от книги Эккеля. 

На западе популярны издания книг, написанных коллективом специалистов, с фотографиями всех авторов на обложке (например - http://www.amazon.com/Professional-Java-Server-Programming-Javaspaces/dp/1861002777).  Вот, можно и таким образом учебник написать.  smile  

Автор: batigoal 3.10.2006, 15:49
Цитата(COVD @  3.10.2006,  16:42 Найти цитируемый пост)
Например, чем это будет отличаться от книги Эккеля. 

Как минимум, тем, что будет продвигаться на нашем форуме, как доморощенная разработка smile

А отличия... Какая разница, будут они, или нет - лишь бы людям помогло.

Автор: COVD 3.10.2006, 15:58
И все же учебники редко пишутся коллективом. Для успеха учебника не столько важна глубина знания предмета авторов, сколько умение изложения.  

Цитата

А отличия... Какая разница, будут они, или нет - лишь бы людям помогло.
 

Да, наверное  smile .

Автор: y3u 3.10.2006, 16:22
Цитата(AntonSaburov @  3.10.2006,  15:39 Найти цитируемый пост)
Так это ничем не отличается от моей программы - разве что несколько больше внимания уделено вопросам проектирования.

Так что если есть желание - присоеденяйся. Хотя бы в качестве критика. 


ну по контенту может быть и не сильно отличается, а принципиально, все-таки, я считаю, важна последовательность изложения, к примеру, зачем давать ДБ перед гуями? smile Знания хороши на примерах, а с ДБ без ГУИ не интересно, что, одни запросы чтоли постить? smile

Спасибо за предложение, если будет время обязательно присоединюсь, я дома для себя кое что перевожу из джавадоков и юзергайдов сторонних библиотечек в виде небольших презентаций, пока мало чего есть, но авось пригодится, хотя сейчас выйдет мустанг и там много чего будет внутри smile А в качестве критика - это всегда пожалуйста, хотя опять же, как время будет smile

Автор: AntonSaburov 3.10.2006, 16:34
Цитата(y3u @  3.10.2006,  16:22 Найти цитируемый пост)
считаю, важна последовательность изложения, к примеру, зачем давать ДБ перед гуями? Знания хороши на примерах, а с ДБ без ГУИ не интересно, что, одни запросы чтоли постить?


Я не согласен smile Работа с базами в начальном варианте гораздо проще, чем GUI. А уж Servlets+JSP - тем более. Объяснить работу с базой данных - это дело нескольких строк кода. Загрузить драйвер, открыть соединение. Дальше просто создаем запросы и выполняем. Работы на 10 строк кода.

А GUI - это гораздо сложнее и зайет наверняка больше страниц. К уже готовому движку для БД прикручивать GUI будет IMHO гораздо интереснее.
Тем более, что при правильном проектировании для GUI будет по барабану - будет работать с ManagementSystem через интерфейс. А за ним хоть база, хоть коллекция. И в этом тоже есть свой резон.

Цитата

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

Но такого рода книг именно по JAVA я не видел. Да и если критика заключается именно в том, чтобы просто сказать - фигня все это - то это не конструктивно IMHO.
Если кто-то что-то когда-то сделал - это не значит, что нельзя сделать лучше.

Может и не получится. Но "я хоть попробовал" (с) "Пролетая над гнездом кукушки"

Автор: COVD 3.10.2006, 16:45
Цитата

Преподаванием занимаюсь по причине полного отсутствия в университете, который я закончил много лет назад и в котором какое-то время работал, каких-либо толковых преподавателей по информатике. Будем считать это спонсорской помощью.



Может "нет толковых преподавателей" - это не смертельно?
У нас был только курс программирования на Фортране (12 лекций) и все. Это нормально. Для инженера компьютер - всего лишь рабочий инструмент. Кому надо больше - сами освоят. Другое дело, когда программирование и вычислительная техника - основная специальность. Computer Science, так сказать. В этом случае ну не может не быть профессиональных преподавателей.

Добавлено @ 16:51 
Цитата

Но такого рода книг именно по JAVA я не видел. Да и если критика заключается именно в том, чтобы просто сказать - фигня все это - то это не конструктивно IMHO.


ОК  smile 


Автор: batigoal 3.10.2006, 16:56
Цитата(AntonSaburov @  3.10.2006,  17:34 Найти цитируемый пост)
Работа с базами в начальном варианте гораздо проще, чем GUI

...при условии, что человек уже знаком с теорией БД и знает SQL. А это условие отнюдь не обязательно будет выполнено.
Хотя, тут ведь как: не нужна тебе эта глава - пропускай.

Автор: AntonSaburov 3.10.2006, 17:01
Цитата(batigoal @  3.10.2006,  16:56 Найти цитируемый пост)
...при условии, что человек уже знаком с теорией БД и знает SQL. А это условие отнюдь не обязательно будет выполнено.
Хотя, тут ведь как: не нужна тебе эта глава - пропускай. 

Я думаю, что т.к. произошло разделение работы с данными и интерфесом классом ManagementSystem, то можно строить повествование не пересекаясь. В конце концов поменяем очередность.

Благодарю всех, кто высказался - прошли мои два свободных дня, опять начинается работа и вряд ли я смогу опять дискутировать по этому поводу некоторое время. Так что все замечания оставляйте здесь или пишите e-mail. Адрес в профиле есть.
Постараюсь что-то опебликовать как можно быстрее.

Автор: AntonSaburov 11.10.2006, 12:29
Добавлены две новые части:
Часть 2 - Введение в GUI - http://www.java-course.ru/students/part2.html
Часть 3 - Базы данных - http://www.java-course.ru/students/part3.html

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

Автор: Bulat 11.10.2006, 12:50
Цитата(batigoal @  3.10.2006,  16:56 Найти цитируемый пост)
...при условии, что человек уже знаком с теорией БД и знает SQL. А это условие отнюдь не обязательно будет выполнено.

Ну если честно, то настоящий программист должен хотя бы чуточку знать об этом. Потому как я не могу представить себе программирование без БД. Уж очень во многих местах она встречается. И, вообще, не в обиду, но камень в огород, условно назову "пхпшников"(из-за узкой спецификации языка), потому как встречаю тех кто могут набросать сайтик, а связать с БД - труба. А еще программисты(хотя формально и верно). Еще раз повторюсь не в обиду, название условное и все прекрасно знают о ком я говорю smile  

AntonSaburov
Поддерживаю, чисто за счет того, что самому очень нравится ява, но регулярно возникают те или иные вопросы(потому как люблю и ГУИ, и сетевое программирование), а вот хорошего материальчика малова-то. Тем более по работе пока приходится кодить на другом языке и не у кого даже черпать опыт. Ну про винградовцев молчу, если бы не вы может давно уже бросил бы. smile 

Вообщем, буду критиковать с точки зрения начинающего программиста smile 

Автор: batigoal 11.10.2006, 13:16
Цитата(Bulat @  11.10.2006,  13:50 Найти цитируемый пост)
Ну если честно, то настоящий программист должен хотя бы чуточку знать об этом. Потому как я не могу представить себе программирование без БД. 

Области разные есть, в том числе и не свзяанные с базой, и их немало. Программирование железок, например.

Автор: AntonSaburov 11.10.2006, 13:26
Господа - я конечно понимаю, что обсуждать интересно, кто что должен знать. Но мне бы хотелось, чтобы высказывались по поводу написанного.

Автор: Bulat 11.10.2006, 13:52
Цитата(batigoal @  11.10.2006,  13:16 Найти цитируемый пост)
Области разные есть, в том числе и не свзяанные с базой, и их немало. Программирование железок, например.

ИМХО, но даже к чтоб дойти до тех же железок, нужно пройти сначала основы БД. Да и вообще, если бы БД не была уж очень важна(очень акцентирию), то этот предмет не включали бы отдельной дисциплиной в университетах. ИМХО.

Цитата(AntonSaburov @  11.10.2006,  13:26 Найти цитируемый пост)
Господа - я конечно понимаю, что обсуждать интересно, кто что должен знать. Но мне бы хотелось, чтобы высказывались по поводу написанного. 

Маленько подискутировать всегда интересно smile 
Вообщем первую часть прочитал, воспроизвел. Лично мое мнение(вообще считаю что хорошо было бы если бы во всех учебниках и т.п. делалось такое). Не плохо было бы перед каждым ифом, циклом маленький комментарий(конечно чем развернутее тем лучше, но всегда стоит оставлять немного чтоб нужно было додумать), по поводу того что конкретно здесь делается и почему именно здесь, почему такая реализация. Может показаться пустой тратой времени, но на мой взгляд это исключит еще в зародыше ряд второстепенных вопросов, как например: "Это можно сделать по-другому, в другом месте, почему так?". Лично я на первых курсах(уже зная немного о программировании) не редко задавал такие вопросы.  А могут разрешиться и ряд других более важных вопросов. Но лично мое мнение smile 

Автор: EvgenZ 12.10.2006, 22:54
AntonSaburov, а на какой уровень знаний ориентированны эти статьи? Если  на студентов,  то по мне слишком сложно для начала, а для уже знакомо с явой слишком скучно. Есть большое желание прокрутить Get Set - еры.  Резюме: для начинающего перегруженно кодом, для немного понимающего неинтересно. 
имхо

Автор: AntonSaburov 13.10.2006, 12:39
Цитата(EvgenZ @  12.10.2006,  22:54 Найти цитируемый пост)
а на какой уровень знаний ориентированны эти статьи? 

В принципе в вводной части сказано, что надо знать синтаксис язык и понмать что такое ООП. В принципе этого должно быть достаточно.

Я уже подправил часть для коллекций - так что можно смотреть обновленный вариант.

Автор: Baka_tyan 13.10.2006, 17:37
Классная идея. Для начинающих, которые выучили мат.часть(теорию) - самое то. Я на своем форуме уже выложил(есс-но с ссылкой на первоисточник). Только не понятно, - зачем во 2 части перегружать Managment System  методами updateStudent, deleteStudent и т.д, если в ГУЕ нет  слушателей и обработчиков, которые бы использовали данные методы?

А так - Супер!!! Спасибо. smile 

Автор: AntonSaburov 16.10.2006, 12:04
Цитата(Baka_tyan @  13.10.2006,  17:37 Найти цитируемый пост)
зачем во 2 части перегружать Managment System  методами updateStudent, deleteStudent и т.д, если в ГУЕ нет  слушателей и обработчиков, которые бы использовали данные методы?

Во-первых - они не занимают много места.
Во-вторых - хотелось показать, что коллекции могут что-то делать.
Во-третьих - я снова вернусь к GUI в следующей части и рассмотрю слушателей и модели.

Возможно, что методы были лишними, но я не думаю, что они сильно осложнили код. Зато что-то можно было  посмотреть.

В конце концов это "живой" материал, который будет исправляться и в дальнейшем.

А за отклик спасибо - именно за замечания спасибо, а не за похвалу. Хотя это тоже приятно smile

Добавлено @ 12:05 
Цитата(Baka_tyan @  13.10.2006,  17:37 Найти цитируемый пост)
Я на своем форуме уже выложил(есс-но с ссылкой на первоисточник

А посмотреть можно ?

Автор: AntonSaburov 18.10.2006, 11:35
Добавлена еще одна часть, посвященная GUI - http://www.java-course.ru/students/part4.html

Автор: batigoal 18.10.2006, 11:45
AntonSaburov, может, до кучи добавить Spring?
Я сам буду пробовать его полапать, вдруг получится наваять HelloWorld.

Автор: AntonSaburov 18.10.2006, 13:00
Цитата(batigoal @  18.10.2006,  11:45 Найти цитируемый пост)
AntonSaburov, может, до кучи добавить Spring?

Spring интересен как локальная замена EBJ - работа с базой данных, введение транзакций, аспектное программирование, инициализация бинов и прочая. Я думал над этим - тем более, что сейчас плотно работаем с EJB, Spring, Hibernate и опыт использования есть. 

Но все-таки хотелось бы наверно сначала закончить с тем, что наметил. Потом можно будет расширять наши систему используя различные общепризнанные оболочки. Так что возможно, что появиться Spring. Будущее покажет.

Автор: AntonSaburov 19.10.2006, 18:51
Расширение пользовательского интерфейса - http://www.java-course.ru/students/part5.html

Не знаю, может зря я небольшими частями делаю, но по-моему так воспринимать проще - небольшой кусочек сделали - и хорошо.
А сразу много - подавиться можно smile

Автор: AntonSaburov 25.10.2006, 13:25
Окончательная статья про GUI окончена и ждет ваших пожеланий - http://www.java-course.ru/students/part6.html
Теперь на пороге WEB. 

Еще раз очень прошу высказывать свои замечания.

Автор: Hidrag 25.10.2006, 15:28
Спасибо за работу!
Начну знакомство с JAVA с этого материала smile

Автор: Hidrag 28.10.2006, 16:27
Итак, я решил познокомиться с Java.
Начал читать САБЖ который с самого начала отправил меня к изучению основ. Хорошо я освоил основы здесь http://www-128.ibm.com/developerworks/ru/edu/j-intjava/index.html (хороший учебник для начала с нуля, все четко и подробно описано, только основы).

Начал продолжать обучение с САБЖ.
1. Коллекции: Ошибка (имхо опечатка) в первом же примере кода, описаны два идентичных метода, когда в тексте сказано что там геттер и сеттер, а там два сеттера.
Предлагаю заменить второй метод на:
Код

    public int getStudentId()
    {
        return studentId;
    }


Больше замечаний пока нет smile 
продолжаю обучени...
smile

Ну вот вроде весь код прочитал, в ИДЕ (Эклипс) перепечатал, все настроил, запускаю: фиг! пошли ошибки!
Вот что вышло:
Цитата

Полный список групп
*******************
Первая
Вторая

Полный список студентов
***********************
Степанов Иван Сергеевич, 20.04.90, Группа ИД=2 Год:2006
Чичикова Наталья Андреевна, 10.07.90, Группа ИД=2 Год:2006
Сушкин Петр Викторович, 12.04.91, Группа ИД=1 Год:2006
Ковалева Вероника Сергеевна, 19.08.91, Группа ИД=1 Год:2006

Список студентов по группам
***************************
---> Группа:Первая
java.lang.ClassCastException
    at java.util.TreeMap.compare(Unknown Source)
    at java.util.TreeMap.put(Unknown Source)
    at java.util.TreeSet.add(Unknown Source)
    at Vingrad.ManagmentSystem.getStudentsFromGroup(ManagmentSystem.java:44)
    at Vingrad.ManagmentSystem.main(ManagmentSystem.java:231)
Exception in thread "main" 

воот...
после изменения в функции getStudentsFromGroup(Group group, int year)
строки 
Код

Collection l = new TreeSet();

на
Код

Collection l = new ArrayList();

Может несовместимость типа TreeSet и Collection? или я что то не так сделал?

Автор: AntonSaburov 30.10.2006, 13:24
Спасибо за замечания.

Цитата(Hidrag @  28.10.2006,  16:27 Найти цитируемый пост)
Предлагаю заменить второй метод на:

Исправил. И там оказалась еще одна ошибка - тоже исправил.

Цитата(Hidrag @  28.10.2006,  16:27 Найти цитируемый пост)
после изменения в функции getStudentsFromGroup(Group group, int year)

Не удалось воспроизвести - у меня все прекрасно работает.

Хорошо бы подробнее узнать о проблеме.

Автор: Bulat 13.11.2006, 13:15
Кстати, вроде еще ошибка не внимательности:
в третьей части про БД в классе Student.java, не хвататет

Код


import java.sql.*;



для резултсета, и соотв. ексепшона smile

ИМХО, но я вообще стараюсь писать не
Код

        setStudentId(rs.getInt(1));
        setFirstName(rs.getString(2));
        setPatronymic(rs.getString(3));
        setSurName(rs.getString(4));
        setSex(rs.getString(5).charAt(0));
        setDateOfBirth(rs.getDate(6));
        setGroupId(rs.getInt(7));
        setEducationYear(rs.getInt(8));


а
Код

        setStudentId(rs.getInt("student_id"));
        setFirstName(rs.getString("firstName"));
        setPatronymic(rs.getString("surName"));
        setSurName(rs.getString("patronymic"));
        setSex(rs.getString("sex").charAt(0));
        setDateOfBirth(rs.getDate("dateOfBirth"));
        setGroupId(rs.getInt("group_id"));
        setEducationYear(rs.getInt("educationYear"));

так по-моему более понятнее, особенно для начинающих, что конкретно делают эти строки кода smile

И сразу такой вопрос, почему вот вышеуказанный код, для класса Student.java в самом классе, а для Group.java  в ManagementSystem.java? Только показать, что можно и так, и так, и в данном примере это не играет особой роли?..

И еще, при коннекте к базе, может сразу писать так:
Код

    String url = "jdbc:mysql://localhost/students?lc_ctype=cp1251";


Отступ от стандартного, что дается в учебниках, но лично у меня после этого проблем с кириллицей не возникало, а до все время мучался smile, атак можно в комментарии указать что к чему

Автор: AntonSaburov 13.11.2006, 17:15
Спасибо за замечания - исправил. Так действительно лучше. На время беру паузу - очень много работы, но я потихонечку пишу, правда уже не так быстро, как раньше.

Автор: Bulat 13.11.2006, 17:30
AntonSaburov, да и я не быстро, не всегда времени бывает, чтоб посидеть, воспроизвести, да еще и проанализировать  smile 

Автор: Bulat 14.11.2006, 09:06
Чтот действительно быстро получается smile
Вообщем такой момент:
Цитата

Теперь если мы запустим наше приложение из командной строки, то при перемещении увидим на экране строку с номером индекса.
Но если Вы попробуете изменять строки мышкой, то заметите, что наш метод valueChanged вызывается ДВА раза. 

Вот тут маленький огрех, как раз если водить мышкой(нажал и не отпускать), то метод срабатывает один раз, а если на каждый элемент списка нажать и отпустить мышку, то и срабатывает дважды. Хотя может я не совсем верно понял "изменять строки мышкой" smile А дальше после 
Код

        if(!e.getValueIsAdjusting()) {
            System.out.println("New index:"+list.getSelectedIndex());
        }


все ок

Автор: AntonSaburov 8.12.2006, 13:22
Добавлена новая статья (и первая в части прораммирования для Интернет) - http://www.java-course.ru/students/part7.html

Автор: Gregorian 19.12.2006, 21:53
Хочу выразить благодарность всем участникам проекта! Ваш проект для таких новичков как я - просто сказка! Очень помогает в изучении java и читать интересно! Большое спасибо!

Автор: AntonSaburov 15.2.2007, 19:07
Добавлена статья по JSP - http://www.java-course.ru/students/part8.html

Автор: val_vp 24.2.2007, 10:47
Hi, я уже в заметках к статье Часть 6 - GUI - заключительные классы в заметках это уже писал, но повторюсь,
Цикл статей просто класс, низкий поклон AntonSaburov-у за статьи.
прочитал все, много не сразу понял  smile , но написанно хорошо без лишней воды + на реальном примере.

токо вот один момент я не очень понял по "Часть 6" с добавлением студента он что добавляется 2 раза?
функция insertStudent() -- StudentFrame.java
336-339:
Код

    StudentDialog sd = new StudentDialog(ms.getGroups(), true, StudentsFrame.this);
     sd.setModal(true);
     sd.setVisible(true);
     if (sd.getResult()) {
            Student s = sd.getStudent();
            ms.insertStudent(s);
            reloadStudents();
...

и
actionPerformed() -- StudentDialog.java
217:
Код

   ManagementSystem.getInstance().insertStudent(getStudent());


Автор: AntonSaburov 26.2.2007, 14:06
Цитата(val_vp @  24.2.2007,  10:47 Найти цитируемый пост)
токо вот один момент я не очень понял по "Часть 6" с добавлением студента он что добавляется 2 раза?

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

Автор: val_vp 1.3.2007, 17:30
меня смущает вот что при нажатии кнопки при вызове диалога идет сохранение в обработчике кнопки с вызовом MenegmentSystem и те же данные сохраняются получив данные о студенте но уже в классе который вызвал диалог сохранения студента

Автор: AntonSaburov 1.3.2007, 19:29
Так логика очень простая - пользователь вызывает диалог для сосздания нового студента. Если он добавляет одного студента, то в диалоге он нажимает ОК и студент добавлен. Если же надо добавить много студентов, то не требуется каждый раз закрывать/открывать диалог. Во всяком случае я с такими видами заполнения часто сталкивался - это удобно пользователю.

То, что вызывается в нескольких местах сохранение студента - не вижу в этом проблемы. Вызов основной лишь один - ManagementSystem.insertStudent.

Автор: Sipoju 29.3.2007, 23:52
Для начинающих в java world (таким являюсь и я) такая замечательная подборка статей просто необходима!
Большое спасибо автору!

Автор: ranger_www 25.4.2007, 11:16
Привет всем!
Я конечно очень благодарен автору!
Но хотелось бы узнать когда же будет статья о JUnit test?

Автор: AntonSaburov 4.5.2007, 14:46
Был очень загружен последние 3 месяца - сейчас полегче. Обязательно учту пожелание. Может быть как раз для JUnit самое время. Посмотрим. Спасибо за отклики.

Автор: niasilil 13.7.2007, 20:38
Цитата(AntonSaburov @ 4.5.2007,  14:46)
Был очень загружен последние 3 месяца - сейчас полегче. Обязательно учту пожелание. Может быть как раз для JUnit самое время. Посмотрим. Спасибо за отклики.

Антон, отредактируйте пожалуйста ссылку в первом сообщении. 

Автор: Aleksiusss 24.7.2007, 15:45
"Студенческий отдел кадров" от Антона Сабурова, не работает пишет следующее
Ошибка базы данных
Обнаружена ошибка синтаксиса запроса к базе данных. Последний запрос к базе данных: 
(SQL запрос скрыт)
произошёл из функции «Breadcrumbs::findKnownPages». MySQL возвратил ошибку «1146: Table 'wikivingrad.cur' doesn't exist (localhost)».

Автор: Andrey1 26.7.2007, 18:00
А какую IDE рекомендуете ученикам?

Автор: LSD 26.7.2007, 19:36
Цитата(Aleksiusss @  24.7.2007,  16:45 Найти цитируемый пост)
"Студенческий отдел кадров" от Антона Сабурова, не работает пишет следующее

Спасибо за информацию, но в следующий раз пиши в раздел http://forum.vingrad.ru/forum/forum-211.html.

Цитата(Andrey1 @  26.7.2007,  19:00 Найти цитируемый пост)
А какую IDE рекомендуете ученикам?

Почитай прикрепленую тему в разделе Java tools & IDE's.

Автор: ecologist 27.7.2007, 08:56
Я кстати посмотрел - он пока доступен в FAQ - http://forum.vingrad.ru/act-Search/nav-tags/CODE/show/searchid-ea481c03bde5e117e75c6253ad47b4cf/search_in-topics/result_type/topics/flag/search/index.html

Автор: Andrey1 27.7.2007, 16:21
Цитата(LSD @  26.7.2007,  19:36 Найти цитируемый пост)
Почитай прикрепленую тему в разделе Java tools & IDE's.

Мне то ее чего читать... smile Я интересуюсь что рекомендует AntonSaburov на лекциях...

Автор: AntonSaburov 27.7.2007, 18:54
Я поначалу рассчитывал вообще обойтись без каких либо IDE, но видимо придется - т.к. все-таки много ручной и ненужной работы. Потихонечку пишу WEB-часть и понимаю, что руками там люди будут умирать. В WEB еще может как-то обойдусь, но например EJB - тут уже сложно. А коснуться хотелось бы - EJB 3.0 очень сильная и удобная вещь.

Скорее всего я буду делать проект на NetBeans 5.5 - думаю, что его можно поставить и использовать. Достаточно современный и удобный продукт.

Автор: powerOn 27.7.2007, 19:02
Цитата(AntonSaburov @  27.7.2007,  19:54 Найти цитируемый пост)
Скорее всего я буду делать проект на NetBeans 5.5 - думаю, что его можно поставить и использовать. Достаточно современный и удобный продукт. 

Быть может стоит о NetBeans 6.0 подумать? Он конечно ещё очень сырой, но осенью будет релиз, поэтому, мне кажется, это актуально...

Автор: AntonSaburov 30.7.2007, 13:19
Цитата(powerOn @  27.7.2007,  19:02 Найти цитируемый пост)
Быть может стоит о NetBeans 6.0 подумать? Он конечно ещё очень сырой

Такое решение возможно - но надо хотя бы выполнить WEB-часть. А то засел я что-то - буду стараться к осени все-таки сделать. Дальше посмотрим.

Автор: goodday1941 4.8.2007, 20:50
каким то образом, наткнулься на эту тему на форуме только вчера вечером, до этого не замечал :(
В общем то перечитал последние две части (сервлеты и jsp) так как начал изучать веб.. доходчиво  smile
но пока очень мало :( жду с нетерпением остальных статей по вебу (особенно ejb и hibernate)...
еще есть вопрос: будет ли рассмотрен Struts?

заметил опечаткy  в статье по жсп: 1. Написать TLD-файл (Nag Library Definition) - файл описателя библиотеки тэгов

ну и еще в статье по жсп: в первом программме которую писали при проверке введено ли имя пользователя Вы проверяете на null и на length, во второй только на null...  это так и нужно?

Автор: _int64 16.8.2007, 08:30
NetBeans 6 рулит, даже некоторые побросали IDEA
этот билд стабильный и багов пока в нем поменьше
NetBeans IDE 6.0 Build 200708110000

Автор: nicopol 20.8.2007, 17:40
Цитата(_int64 @ 16.8.2007,  08:30)
NetBeans 6 рулит, даже некоторые побросали IDEA
этот билд стабильный и багов пока в нем поменьше
NetBeans IDE 6.0 Build 200708110000

согласен с ТС

Автор: AntonSaburov 20.8.2007, 18:27
Джентльмены - обсуждение достоинств и недостатков NetBeans продолжайте в отдельной теме. А также все остальные темы, которые не касаются "Стеденческого отдела кадров".

Автор: unkis 24.9.2007, 18:35
Вот и осень на дворе, хотелось бы узнать, будет ли продолжение.

Автор: AntonSaburov 26.9.2007, 12:48
Буду стараться - половину где-т написал, но опять много работы. Иногда просто на форум захожу отдохнуть. А так - пашу по 12 часов в день.

Автор: AntonSaburov 23.10.2007, 18:42
В черновом варианте статью закончил - не все туда успел затолкать. Но более-менее. Есть проблема с публикацией - скоро будет решена надеюсь.

Автор: AntonSaburov 24.10.2007, 18:18
Две новости:

1. Опубликовал 9-ю часть. Хоть и обрезанную
2. Т.к. на сегодня части не влезают на форум пришлось пока сделать это на своей страничке - http://www.java-course.ru/
Хоть для чего-то пригодится smile

Автор: AntonSaburov 1.11.2007, 16:37
Добавлена новая часть - http://www.java-course.ru/students/part10.html

Автор: Shaggie 13.11.2007, 11:17
AntonSaburov, хорошая статья, только я бы добавил пассаж о том, что системы модульного тестирования, если их разработка ведётся по ходу создания приложения, очень помогают правильным архитектурным решениям.

Автор: AntonSaburov 13.11.2007, 13:27
Спасибо за замечания - я постараюсь. Думаю взять тайм-аут на редактирование предыдущего - там ошибок и описок очень много. Хотя может появиться желания написать что-то новое. Посмотрим.

Автор: unkis 20.11.2007, 22:03
статьи просто супер, а главное полезные. огромное спасибо автору.

Автор: AntonSaburov 23.11.2007, 19:32
Я доделал Часть 9 - там теперь есть страница для редактирования данных о студенте. Правда возможно проблемы с кодировкой - не было времени доразобраться.

Автор: EJack 24.11.2007, 08:53
Цитата(AntonSaburov @ 2.10.2006,  16:23)
Я начал цикл статей по технологиям JAVA. Цель и идея рассмотрены в первой статье.

http://wiki.vingrad.ru/Java:%D0%A1%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BE%D1%82%D0%B4%D0%B5%D0%BB_%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2

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

ВНИМАНИЕ !!! На сегодня есть проблемы с публикацией, так что заходите вот сюда

http://antonsaburov.narod.ru/students/content.html

Я хотел у вас спросить - а возможно ли обновление и продолжение вашего цикла статей?

Хотелось бы обновления в плане использования последних нововведений в Java например Generics ну и планируеться ли дальнейшее развитие?

Спасибо!

Автор: oleshko 26.11.2007, 13:10
Здарвствуйте, Антон!
Я вот тоже столкнулся с проблемой. Использую 1.5 яву, а она требует использование Generisc для Листов и Коллекций. В принципе, пытался разобраться сам, немного понял по теме, но как это на примере использовать - не знаю smile. Не могу понять, где какого типа должна быть коллекция или лист.

Автор: batigoal 26.11.2007, 14:48
Друзья мои, про дженерики у Сана целый мануал написан: http://java.sun.com/docs/books/tutorial/extra/generics/index.html.

Автор: AntonSaburov 26.11.2007, 15:52
Цитата(EJack @  24.11.2007,  08:53 Найти цитируемый пост)
а возможно ли обновление и продолжение вашего цикла статей?

Так он постоянно обновляется и продолжается - в течении осени написано две статьи. И продолжение скорее всего будет.

Продолжение хотелось бы сделать - пока думаю, как будет лучше. Да и время надо найти. Вообщем надежда на продолжение есть.
Также есть надежда на исправление ранее написанного.

Цитата(oleshko @  26.11.2007,  13:10 Найти цитируемый пост)
Использую 1.5 яву, а она требует использование Generisc для Листов и Коллекций. 

Ну она не требует, а скорее настоятельно рекомендует smile
Может быть возьмусь за труд переписать кое-какие части для исползования Generic. Но как и продолжение гарантировать не могу - все-таки проект требует времени.

Автор: EJack 30.11.2007, 15:54
Вообще с Generics разобрался и все сделал чере згенерики сразу, вот теперь перебираю разделы с GUI так сказать пробую по разному своего добавляю - щупаю. Потом web буду крутить

Автор: ecologist 5.12.2007, 08:43
Похоже в части 9 ошибочка - там странный код для JNDI - видимо копирование кусков кода куда-то не туда завело.

Автор: AntonSaburov 5.12.2007, 16:02
Спасибо за замечание - исправил.

Автор: oleshko 7.12.2007, 12:18
Очень часто встречаются ошибки чисто грамматические: там буква недописана, здесь пропущена. Может стоит встроить быстренько орфус? 
Понимаю, что времени нет даж на обычную статью, но тут намечается очень хороший материал для издания ;-).

http://orphus.ru/

Автор: AntonSaburov 7.12.2007, 18:19
Цитата(oleshko @  7.12.2007,  12:18 Найти цитируемый пост)
тут намечается очень хороший материал для издания

Раз это уже в инете - какое тут издание smile

Автор: v2v 8.12.2007, 01:11
Цитата(AntonSaburov @  7.12.2007,  18:19 Найти цитируемый пост)
Раз это уже в инете - какое тут издание smile 

думаю найдутся желающие иметь такой Great Java Tutorial по русски в своей библиотеке smile

Автор: AntonSaburov 10.12.2007, 16:17
Цитата(v2v @  8.12.2007,  01:11 Найти цитируемый пост)
думаю найдутся желающие иметь такой Great Java Tutorial по русски в своей библиотеке

Вот когда еще кое-что сделаю и исправлю ошибки - тогда подумаем smile Через годик.

Автор: oleshko 10.12.2007, 17:59
На самом деле, очень хороший материал. Я всё перекопал и безумно рад, что столкнуляс с этим трэдом. Это лучшее, что я вообще читал по яве за последний месяц (ну, чувство юмора такого нет, как в SCJP  smile ). А самостоятальные задания, которые и предлагалось реализовать самостоятельно - вообще классная идея! Часто при изучении у ученика отсутвуют мысли, что как попробовать сделать бы, потому что он не догадывается о возможности такой smile. Это потом уже становится всё "ай, легко". 
Исправить мелкие ошибки, пройтись снова по всем моментам и можно нести в издательство, имхо). Пусть в инете в свободном доступе есть. Главное обсудить это с издательством, и поставить перед фактом smile. Вообщем, Антон, подумайте над этим.

Автор: AntonSaburov 20.12.2007, 18:56
Сделан первый релиз http://www.java-course.ru/students/part11.html

Не знаю, насколько хорошо получилось. Материал оказалось сложнее преподносить, чем я думал. Так что жду ваших отзывов.

ДУмаю, что в ближайшее время буду вносить корректировки.

Автор: Kangaroo 20.12.2007, 19:14
AntonSaburov
супер, спасибо. Как раз та тема до которой у меня руки не доходили  smile 
На выходных постараюсь прочитать и попробовать. Ну и отпишусь конечно же.

Автор: serger 21.12.2007, 07:26
Начал читать, спасибо за труд..
Возник тактический вопрос. Почему MySQL, а не Derby?

Совсем забыл про старый отдел кадров - там был MySQL. Те проект не совсем с "нуля". Гы-ы.

Автор: AntonSaburov 21.12.2007, 13:49
Цитата(serger @  21.12.2007,  07:26 Найти цитируемый пост)
Возник тактический вопрос. Почему MySQL, а не Derby?


Цитата(serger @  21.12.2007,  07:26 Найти цитируемый пост)
Совсем забыл про старый отдел кадров - там был MySQL. Те проект не совсем с "нуля".

Ну вообщем я об этом упомянул в статье
Если уж стоит MySQL - зачем связываться с Derby - вообщем для небольших баз вполне проходит и ставить фактически ничего не надо. Но раз уже поставили MySQL - зачем заново городить smile

Автор: Kangaroo 23.12.2007, 02:54
Как и  обещал - почитал, попробовал, попытаюсь написать респонс  smile 

Во-первых, спасибо Антону за труд  smile 

Теперь обо всем по порядку:
1)  Опечатка - слово "сожранение"  smile 
2)  Вы везде ссылаетесь на StudentsApp-web,  хотя в реальности - StudentsApp-war

3)  Вопрос про AppServer'ы: получается что Tomcat не AppServer, a WebServer? AppServer - только те на которых работает, например, EJB?

4) Улыбнула фраза "@EJB – это нововведение от Java версии 1.5 – аннотация.". Просто до этой фразы мы нагенерили кучу кода с аннотациями, а упомянули их только сейчас.

5) *Замечание для тех кто (вдруг) будет использовать NetBeans 6.0 Beta 2*
У меня подвис деплой приложения  ( с сообщением "Checking for missing JDBC drivers ..."). Оказалось - http://www.netbeans.org/issues/show_bug.cgi?id=120208 этой версии NetBeans'a. По ссылке можно почитать как обойти глюк

И общее впечатление.
Мне показалось, что такую тему (даже самые самые основы) сложно уложить в 1-2-3 главы... Лично я понял КАК сделано, но не совсем понял ЧТО сделано(некоторые моменты остались непонятными). И визарды - сократили время, но спрятали за собой много интересного ))
Как введение в эти технологии - отлично написано, но теперь надо читать книжки и доки.... (эх.. время бы найти)

Еще раз спасибо!

Автор: batigoal 23.12.2007, 17:55
Цитата(Kangaroo @  23.12.2007,  03:54 Найти цитируемый пост)
получается что Tomcat не AppServer, a WebServer

В общем-то, да. Web server + servlet container.

Цитата(Kangaroo @  23.12.2007,  03:54 Найти цитируемый пост)
AppServer - только те на которых работает, например, EJB?

Ну и все остальные технологии из спектра J2EE.

Цитата(Kangaroo @  23.12.2007,  03:54 Найти цитируемый пост)
И визарды - сократили время, но спрятали за собой много интересного

К сожалению, нынче это официальная политика Sun. Вместо того, чтобы писать, как должен выглядеть конфигурационный XML, они описывают, какие кнопочки нужно нажать в NetBeans. Дико раздражает и мешает обучению.

Автор: AntonSaburov 24.12.2007, 14:15
Цитата(Kangaroo @  23.12.2007,  02:54 Найти цитируемый пост)
Как и  обещал - почитал, попробовал, попытаюсь написать респонс

Да я сам смотрел и думал. что надо будет исправлять и добавлять - там явно слабовато сделано. Спасибо за ответ - будем работать дальше smile

Автор: AntonSaburov 24.12.2007, 17:45
Что-то было немного свободного времени и накатал http://www.java-course.ru/students/part12.html

Просто подумалось, что поисследовать можно и в отдельной части.

Автор: Kangaroo 28.12.2007, 01:58
Цитата(AntonSaburov @  24.12.2007,  16:45 Найти цитируемый пост)
Что-то было немного свободного времени и накатал 

Тоже появилось время и я решил почитать...

Начнем с простого: опечатка - пунтк
Цитата

Я не знаю, как Вы относитесь к таким «похождениям» - но я лично люблю покопаться.

Мне понравилось. Появились проблески света (хоть какие-то начальные знания внутренностей). Завтра сам уже покопаю дальше...
Спасибо Антону smile 

Сразу вопрос. В domains\domain1\generated\jsp\j2ee-apps\StudentsApp\StudentsApp-war_war\org\apache\jsp\ нашел index_jsp.java:
Код

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.Vector _jspx_dependants;

  private org.apache.jasper.runtime.ResourceInjector _jspx_resourceInjector;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html;charset=UTF-8");
      response.setHeader("X-Powered-By", "JSP/2.1");
      pageContext = _jspxFactory.getPageContext(this, request, response,
               null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
      _jspx_resourceInjector = (org.apache.jasper.runtime.ResourceInjector) application.getAttribute("com.sun.appserv.jsp.resource.injector");

      out.write("\n");
      out.write("\n");
      out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n");
      out.write("\n");
      out.write("   \"http://www.w3.org/TR/html4/loose.dtd\">\n");
      out.write("\n");
      out.write(" \n");
      out.write("\n");
      out.write("<html>\n");
      out.write("\n");
      out.write("    <head>\n");
      out.write("\n");
      out.write("        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
      out.write("\n");
      out.write("        <title>JSP Page</title>\n");
      out.write("\n");
      out.write("    </head>\n");
      out.write("\n");
      out.write("    <body>\n");
      out.write("\n");
      out.write("        <h2>Hello World!</h2>\n");
      out.write("\n");
      out.write("        <form action=\"MyServlet\">\n");
      out.write("\n");
      out.write("            <input name=\"studentId\" type=\"text\"/>\n");
      out.write("\n");
      out.write("            <input type=\"submit\" value=”Show”/>\n");
      out.write("\n");
      out.write("        </form>\n");
      out.write("\n");
      out.write("    </body>\n");
      out.write("\n");
      out.write("</html>\n");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          out.clearBuffer();
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }
}

То есть index.jsp, переделанный в сервлет. С jsp'xами я не работал, но вроде слышал, что они как-то предкомпилируются. Но чтобы вот так - трансформирование в код сервлета, а потом уже компилирование - первый раз вижу. Это обычный "жизненный цикл" jsp? Или так только в Glassfish'e?

PS
Цитата

Вы найдете приложение "StudentsApp" в очень любопытном месте

Улыбнуло  smile 

Автор: batigoal 28.12.2007, 11:44
Цитата(Kangaroo @  28.12.2007,  02:58 Найти цитируемый пост)
Это обычный "жизненный цикл" jsp? Или так только в Glassfish'e?

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

Автор: Shaggie 28.12.2007, 12:10
Цитата(batigoal @  28.12.2007,  11:44 Найти цитируемый пост)
Но то ли у Томката, то ли у Резина я их тоже видел.

И у Томката, и у Резина. А вот Джетти не сохраняет транслированных в сервлет джсп страниц, и это в отдельных случаях здорово затрудняет отладку smile

Однако механизм именно такой - трансляция джсп в сервлет и последующая компиляция сервлета в класс.

Автор: Kangaroo 28.12.2007, 13:00
Цитата(Shaggie @  28.12.2007,  11:10 Найти цитируемый пост)
И у Томката

Да, реально. Только что нашел в Томкете здесь - apache-tomcat-5.5.17\work\Catalina\localhost\НазваниеПроекта\org\apache\jsp\

Цитата(Shaggie @  28.12.2007,  11:10 Найти цитируемый пост)
Однако механизм именно такой - трансляция джсп в сервлет и последующая компиляция сервлета в класс.

Спасибо, полезное знание.


Автор: AntonSaburov 28.12.2007, 15:04
Спасибо, что читаете мои опусы smile

Я уже подготовил исходники для полного приложения через EJB/JSP - не очень красивое, но вполне работающее. Теперь буду писать комментарии и текст. Но до Нового Года не смогу. Так что ожидайте пополнения smile

Автор: AntonSaburov 28.12.2007, 17:42
Цитата(AntonSaburov @  28.12.2007,  15:04 Найти цитируемый пост)
Но до Нового Года не смогу. Так что ожидайте пополнения

Начальство не очень наседало, так что выкроил немного времени и накатал заключительную часть. Читайте и давайте свои комментарии.

Автор: AntonSaburov 17.1.2008, 14:42
Не знаю, удобно ли это будет или не очень и надо ли вообще - сделал рассылку под "Студенческий отдел кадров".
Для того, чтобы не смотреть каждый раз, что новенького появилось - можно подписаться. Может это и не надо, но раз такая услуга может быть задействована - почему бы не попробовать. 
Так что заходите на страничку - http://www.java-course.ru/

Автор: Штык 21.1.2008, 21:51
Антон в студенческом отделе кадров не работает первая статья, не могли бы вы ее перезалить.. заранее благодарен.

Автор: Kangaroo 21.1.2008, 22:13
Штык
почему не работает? Вот - http://www.java-course.ru/students/part1.html, попробуй.

Автор: SkiNNi 16.4.2008, 22:22
Статья хорошая и понятная. Изучить всё и  сразу не получится, так хоть наметить необходимые технологии для изучения(с чем автор справился). Жду дальнейших статей , желательно с использованием NetBeans т.к. мне кажется сегодня без IDE писать Очень много руками. Хотелось бы хоть беглово расмотрения технологий
Цитата

- 9 - Hibernate framework, HSQL introduction
- 11 - SOAP, WSDL, Axis etc.

Автор: batigoal 17.4.2008, 08:19
Цитата(SkiNNi @  16.4.2008,  23:22 Найти цитируемый пост)
желательно с использованием NetBeans 

Только не это. И так уже сановцы все свои курсы на иглу НетБинза подсадили, теперь ещё и мы будем продолжать.

Обучение языку и платформе не должно быть привязано к среде разработки.

Автор: serger 18.4.2008, 10:26
Цитата(batigoal @ 17.4.2008,  08:19)
Обучение языку и платформе не должно быть привязано к среде разработки.

согласен, но не всегда возможно, увы

Автор: SkiNNi 18.4.2008, 19:29
Разницы между IDE особо сегодня нету.В одной того больше в другой то лучше.Это всё не важно, если програмист сформировался, он сам себе выберет IDE. Осповные принципы написания кода везде практически одинаковы. Но NetBeans, SUN рассылает бесплатно(расходы на доставку)+aplication serwer+tomcat+JDK1.6 и ненадо ничего качать и ставить какие то плагины. Установил и пользуй, и EE и WEB .Всё просто, а что нужно для обучения? Тратить пару месяцев на изучение IDE? 

Автор: batigoal 18.4.2008, 22:50
Цитата(serger @  18.4.2008,  11:26 Найти цитируемый пост)
согласен, но не всегда возможно, увы 

Почему это?

Автор: serger 21.4.2008, 15:00
Лень, авторитет, время, стереотипы..

Хорошо, если обучается студент - ему бороться только с собой. А если тебе предлагают освоить готвую инфраструктуру - копаться в мелочах просто не дадут - делай как все!

Автор: SkiNNi 22.4.2008, 21:19
Подход правильный. Делай как все, дорастёш начнёш выпендриваться. Своего рода шаблон в жизни. Ускоряет как обучение, так и скорость написания программ.

Автор: LSD 23.4.2008, 11:28
Во первых работа только в IDE опасна тем, что человек не понимает сути. И потом при нестандартных ситуациях или в случае ошибок, он просто не знает что делать, надо лезть внутрь, а он там ничего не понимает и не знает.

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

Автор: SkiNNi 24.4.2008, 21:55
Всё то верно. Знать что делает IDE знать нужно и нет разницы что это за IDE. Но я как начинающий делаю в IDE , а потом смотрю что и как он делает. Сначала без особого понятия , но по мере начитки Я если встречаю что-то и знаю что там  и читаю для чего оно там. У меня есть правильный пример а дальше можно эксперементировать. Это лучше чем чем начинать писать на EE с написания persistence.xml непонимая для чего он. 

Автор: SkiNNi 27.5.2008, 03:34
похоже у Антона бооольшая парилка на работе. Антон ты не стесняйся, говори что надо, авось поможем(бесплатно). Будет за честь. Только не остонавливайся.

Автор: AntonSaburov 5.9.2008, 14:33
Разобравшись в самом себе, с проектами и с тем, что же я хочу рассказать еще - решил возобновить свою работу над "Отделом кадров". Так что ждите публикаций в самое ближайшее время. Спасибо за внимание.

Автор: Connie 6.10.2008, 20:15
AntonSaburov, зарегистрировался на этом форуме, что бы сказать Вам спасибо за "отдел кадров". Он помог мне довольно быстро стартануть в java. 

Там раскрыты многие вещи, над которыми, после другого языка и системы программирования, мне пришлось бы потратить массу времени.

Надеюсь в дальнейшем и форум мне поможет и, может, я кому нибудь помогу smile

Модераторы, простите за лирику

Автор: AntonSaburov 28.10.2008, 17:03
Ну что же - начало положено.

http://www.java-course.ru/students/part14.html


Автор: Shaggie 28.10.2008, 19:48
AntonSaburov, спасибо, с нетерпением жду следующей статьи - этой мой аппетит только раздразнён.

В тексте, где пишешь про DAO, есть строка: "Скорее всего, существуют и будут созданы еще какие-то, но я осведомлен." Похоже, что что-то недописано; исправь, пожалуйста.

Автор: powerOn 28.10.2008, 19:55
Спасибо, Антон, очень интересная статья!  smile 

Мне хотелось бы прокомментировать вот этот кусочек (если никто не против  smile):

Цитата

Во-вторых – недавно мои знакомые быстренько создали Web-Sevices по структуре класса, который отдавал наружу entity. NetBeans честно сгенерил полное описание классов. И тут они наткнулись на неприятное открытие. Дел в том, что сами entity не всегда заполняются сразу полностью. Есть такое понятие как lazy-инициализация (ленивая инициализация). Такая техника часто используется, когда вам не нужны все поля от entity сразу. И только когда эти данные потребуются – будет запрос к базе данных. Но запрос может быть только когда у вас открыта транзакция. Но в то время, как транзакция вынесена на бизнес-уровень, преобразование данных для передачи Web-Services производится позже – и возникает проблема. С одной стороны entity хочет «доинициализироваться» до конца, а транзакция уже закрыта. Возникает ошибка исполнения. Неудобно.

Исходя из этих соображений и получается – удобно сделать отдельные классы для выдачи на уровень UI


Не так давно, я сталкивался с такой же проблемой. Аналогично писался веб-сервис, который выдавал клиенту некую сущность из БД, которая имела ленивую связь в коллекцией других сущностей. Естественно, отдавать нужно было все дерево объектов. В качестве имплементации WS мы использовали JBossWS, а для доступа к БД - EJB 3.0 (JPA). Все это конечно же крутилось на JBoss AS. Ошибка при этом появлялась, в точности как ты и описал: Lazy-Load Exception - сессия с БД закрыта, а View данные еще не забрал. Но! Написав аналогичный пример и запустив его на Glassfish, все отработало без проблем... просто по тому, что реализация WS (Metro) на Glassfish стартовала транзакции с уровня веб-сервисов, а не с уровня EJB... Поэтому, я могу сделать вывод, что подобное поведение зависит от конкретной платформы... Кстати, есть еще паттерн http://www.hibernate.org/43.html, которое достаточно часто применяют для решения аналогичной проблемы построенных на основе Hibernate.



Автор: batigoal 28.10.2008, 19:58
Цитата

Вряд ли вы видели компанию, которая не меняла свои бизнес-процессы годами – они чаще всего исчезают достаточно быстро.

Не понял фразу smile

Автор: Platon 28.10.2008, 20:18
Цитата(batigoal @  28.10.2008,  20:58 Найти цитируемый пост)
Не понял фразу smile 

А что непонятного? Неповоротливым компаниям нечего делать в современном бизнесе.

Автор: batigoal 28.10.2008, 20:24
Цитата(Platon @  28.10.2008,  21:18 Найти цитируемый пост)
А что непонятного? Неповоротливым компаниям нечего делать в современном бизнесе. 

Во-первых, это спорный тезис.

Во-вторых, по построению фразы не ясно, кто умирает - компании или процессы.

В-третьих, если компания не меняла бизнес-процессы годами, это значит, что она уже не однодневка.

Автор: AntonSaburov 29.10.2008, 12:52
Спасибо за замечания - то, что счел справедливым, исправил smile

Но уже есть новая статья (я их вообщем-то готовил вместе, но подумал. что надо разделить)
http://www.java-course.ru/students/part15.html

Добавлено @ 12:58
Цитата(batigoal @  28.10.2008,  20:24 Найти цитируемый пост)
В-третьих, если компания не меняла бизнес-процессы годами, это значит, что она уже не однодневка. 

Но их днем с огнем не встретить - что я и говорил. Но все равно - спасибо за замечания.

Добавлено @ 13:01
Цитата(powerOn @  28.10.2008,  19:55 Найти цитируемый пост)
Кстати, есть еще паттерн Open Session in View, которое достаточно часто применяют для решения аналогичной проблемы построенных на основе Hibernate.

Любопытно, но я не думаю, что это есть хорошо - открывать сессию так рано. Конечно на вкус и цвет, но на мой взгляд это не совсем логично.

Автор: Andrey1 29.10.2008, 15:20
 
Цитата

Новая структура данных
...
Как нормальный разработчик, я нарисовал всю схему при помощи пакета, а потом получил SQL. Советую пользоваться такими штуками – их достаточно много. Мне лично нравится ERStudio. Хотя и PowerDesigner тоже неплохо 

Незаслуженно забыт такой OS продукт как SQuirreL smile. Все базовые фишки в нем есть (хоть и придется к нему немного привыкать). С Hibernate он тоже дружит smile.

Автор: Shklyar 30.10.2008, 01:52
Спасибо за интересный и исключительно полезный цикл статьей.

У меня появился вопрос: что раньше необходимо изучать Hibernate или Struts (к примеру)? Цель - работа junior Java developer (J2EE).
 

Автор: batigoal 30.10.2008, 08:32
Shklyar, и то, и другое, но Hibernate, по моим представлениям, используется в большем количестве контор.

Автор: AntonSaburov 30.10.2008, 13:05
Цитата(Shklyar @  30.10.2008,  01:52 Найти цитируемый пост)
что раньше необходимо изучать Hibernate или Struts (к примеру)? Цель - работа junior Java developer (J2EE).

Если мое мнение - то лучше начать с Hibernate.

Автор: lanc 11.11.2008, 20:22
Антон, спасибо Вам за этот труд. 
Есть вопрос по работе "Студенческого отдела кадров" в 9-й части. 
При вводе данных о новом студенте или исправлении данных существующего студента кириллицей выпадает ошибка:
Код

java.io.IOException: Incorrect string value: '\xC3\xA2\xC3\xA0' for column 'firstName' at row 1
    students.web.StudentFrameServlet.processRequest(StudentFrameServlet.java:42)
    students.web.StudentFrameServlet.doPost(StudentFrameServlet.java:88)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Это у меня одного такое?


Автор: AntonSaburov 17.11.2008, 19:09
Эта проблема возникает при несоотвтетсвии кодировок - я уже встречал такое, но лениво было искать решение. Скорее всего надо привести в соотвтествие кодировку на HTML-странице и MySQL базы данных. Я такое как-то встретил, но лениво было искать ответ - к тому же это повод поискать ответ самим читателям smile

Автор: vito1945 30.11.2008, 18:07
Главы учебника по java на http://www.java-course.ru/students/intro.html
и темы-главы здесь, на форуме - идентичны? Или исправлялись\дополнялись только на народ.ру?
Просто удобнее читать здесь на форуме. жаль, что только 8 глав.

Автор: AntonSaburov 11.12.2008, 14:50
Насколько я знаю, так и не смогли исправить проблему с огрничением по размеру. Так что на форуме к сожалению е удается публиковать все. Да и к тому же часть 7 на форуме просто обрезана. Так что пока только у меня на сайте.

Автор: Temdegon 28.12.2008, 01:42
Спасибо за отдел кадров. Распечатал, прочел и опробовал почти все. Очень понравилось. 

Автор: Bukach 12.1.2009, 00:51
Здравствуйте Антон. Начал собирать Ваш проект в NetBeans 6.0. Может я чего не заметил, но не нашел файл c.tld.  Статья 13.
В результате при вводе http://localhost:8081/StudentsApp-war/main (запуск проекта)

Получаю

HTTP Status 500 - 
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception 
javax.ejb.EJBException
note The full stack traces of the exception and its root causes are available in the Sun Java System Application Server 9.1_01 logs.

Очень хотелось бы дойти до конца и увидеть таки все это в действии.

Заранее спасибо.

Автор: Temdegon 12.1.2009, 02:34
С нетерпением жду продолжения. Особенно про Hibernate

Автор: Kangaroo 12.1.2009, 11:29
Bukach
создай отдельную тему с твоей проблемой в разделе J2EE. И выложи полные логи.

Автор: AntonSaburov 12.1.2009, 18:05
Цитата(Bukach @  12.1.2009,  00:51 Найти цитируемый пост)
Здравствуйте Антон. Начал собирать Ваш проект в NetBeans 6.0. Может я чего не заметил, но не нашел файл c.tld.  Статья 13.

Смотреть часть 9:
В процессе работы Tomcat не может загрузить библиотеку тэгов JSTL - ее у него нет. Советую найти и загрузить файл jakarta-taglibs-standard-current.zip который находится - http://www.apache.org/dist/jakarta/taglibs/standard/jakarta-taglibs-standard-current.zip

извлечь оттуда библиотеки jstl.jar и standard.jar и положить их в <TOMCAT_HOME>\common\lib (туда, куда мы поместили драйвер для MySQL). Тогда все должно работать хорошо. В принципе можно устанавливать библиотеку вместе с приложением в каталог WEB-INF\lib, но т.к. большинство приложений будет использовать JSTL, то имеет смысл положить библиотеки в общий доступ.
Также оттуда надо извлечь каталог tld и положить его в папке WEB-INF. Таким образом у вас получится вот такая структура каталогов и файлов:


И потом - уже в части 13
ЧТО ЕЩЕ ОЧЕНЬ ВАЖНО !!!
Вам надо скопировать файлы из директории tld (надеюсь вы не забыли – это наши тэги для управления контентом в JSP.
Ваш проект находится где-то по такому пути

C:\Documents and Settings\<user>\My Documents\NetBeansProjects\StudentsApp\StudentsApp-war\web

Вот здесь и надо копировать наш каталог tld – в WEB-INF. NetBeans «подхватит» добавленные файлы.

Автор: drdoom 20.1.2009, 20:42
Только щас наткнулся на этот тред, долго не писал на яве развивал скилы по .нет, но щас решил вернуться, благо у языков много общего. Буду снова копать яву, благо  есть теперь мануал для быстрого старта.

Добавлено через 1 минуту и 7 секунд
Меня также интересует мнение создателя сабжа по поводу IDEA, удобный ли это по вашему иде, за исключением платности конечно

Автор: AntonSaburov 22.1.2009, 14:36
Цитата(drdoom @  20.1.2009,  20:42 Найти цитируемый пост)
Меня также интересует мнение создателя сабжа по поводу IDEA, удобный ли это по вашему иде, за исключением платности конечно 

Вообщем этоодна из лучших IDE на сегодняшний день. Но у каждой можно найти свои минусы и свои недостатки.

Автор: EJack 25.1.2009, 07:31
Здравствуйте Антон. У меня к вам вопрос - а как создать ВЕБ приложение что бы получить war файл?

Автор: AntonSaburov 26.1.2009, 13:35
Хорошо бы уметь искать в гугле - http://web.bvu.edu/faculty/schweller/internetprog/howtoWAR.htm

По сути надо создать структуру из директорий, которые должны быть в WEB-приложении и просто запаковать их, как указано по ссылке.

Автор: EJack 26.1.2009, 13:47
Спасибо !

Автор: catdp 27.1.2009, 02:48
http://www.java-course.ru/students/content.html

все главы по этому адресу только у меня не грузятся (или частично)?

Автор: LSD 28.1.2009, 13:19
Цитата(catdp @  27.1.2009,  02:48 Найти цитируемый пост)
все главы по этому адресу только у меня не грузятся (или частично)? 

У меня грузятся.

Автор: AntonSaburov 28.1.2009, 13:53
У меня пока не идет что-то про Hibernate - времени крайне немного. Вернее есть, но урывками. Потому потихонечку исправляю внешний вид. Но по идее грузится нормально.

Автор: catdp 28.1.2009, 20:00
видать ресурс загружен или narod

Автор: elvis79 29.1.2009, 09:58
Спасибо автору! Я полный новичок в java, теории начитался из книг и даже с примерами. А как слепить все єто в кучу там нет. А этот проект как раз то что надо. Потихоньку изучаю следуя примерам. Многое проясняется и встает на свои места. 

Автор: Bukach 2.2.2009, 18:34
Антон примите благодарность от меня лично и от всей группы 502301 БГУИР. 

Автор: golden 2.2.2009, 19:05
Я новичок, хотел бы спросить есть ли компиляторы по Java,  а то в блокноте мне не очень удобно, (что нить типа ООП  как delphi например)?

Автор: batigoal 2.2.2009, 22:28
golden, читай эту тему: http://forum.vingrad.ru/forum/topic-198249.html

Автор: elvis79 3.2.2009, 10:31
Цитата(golden @ 2.2.2009,  19:05)
Я новичок, хотел бы спросить есть ли компиляторы по Java,  а то в блокноте мне не очень удобно, (что нить типа ООП  как delphi например)?

Я тоже новичок. Но, пока учусь, использую только блокнот с подсветкой синтаксиса (PSPad например). IDE буду потом использовать, после освоения азов

Автор: batigoal 3.2.2009, 13:19
Цитата(elvis79 @  3.2.2009,  11:31 Найти цитируемый пост)
Но, пока учусь, использую только блокнот с подсветкой синтаксиса (PSPad например).

Я пользовался Notepad++ - в нем можно вызов компилятора на хоткеи посадить, запуск браузера и т.п. - очень удобно.

Автор: AntonSaburov 19.2.2009, 18:08
Наконец я смог найти время для начала рассказа о Hibernate. Вот первая часть
http://www.java-course.ru/students/part16.html

Автор: javanew 21.2.2009, 07:29
Антон, вам большой респект, за ваши старания. Ждемс продолжения!

Кто нить поставбте плюс, я не могу - постов мало !

Автор: serger 24.2.2009, 06:23
Очепятка:
Цитата

connection.driver_class - достаточно понятное свойство. Оно показывает класс драйвера, который используется для соединения с базой данных. Это наш старый знакомый (конечно если вы читали предыдущие части) - драйвер для MySQL
connection.driver_class - тоже очевидно. Это URL для коннекта к базе данных


Ну и ещё много очепяток в словах - недописаны буквы, не те буква, заглавные вместо строчных.

Автор: AntonSaburov 24.2.2009, 14:29
Большое спасибо за замечания - сделал исправления.

Автор: AntonSaburov 2.3.2009, 19:59
Новый материал опубликован

http://www.java-course.ru/students/part17.html

Автор: AntonSaburov 3.3.2009, 17:23
До кучи - аннотации.
http://www.java-course.ru/students/part18.html

Автор: AntonSaburov 6.3.2009, 20:11
Несколько сменил внешний вид сайта. 
Да и надо провести редактуру - много описок, много эскизности, есть неточности в определениях. Так что пока взял таймаут.

Автор: SkiNNi 13.3.2009, 12:30
Цитата
current_session_context_class - это свойство указывает, каким образом происходит управление. Думаю, что пока вам не надо сильно углубляться в данный вопрос
cache.provider_class - кэширование позволяет существенно ускорить работу. Часто запрашиваемые данные можно хранить в памяти и не считывать их каждый раз. Такой способ имеет свои достоинства - скорость, но и свои недостатки. Если кто-то изменит данные в обход Hibernate, то он об этом может и не узнать. В нашем случае мы не используем кэш.
current_session_context_class - данное свойство указывает, будут ли выводится SQL-запросы, которые генерит Hibrante на консоль. В процессе отладки это бывает очень удобно


наверное очепятка smile  smile 

Автор: AntonSaburov 13.3.2009, 12:46
Спасибо - исправил. Если не сложно - указывайте все-таки точнее - в какой части. А то сразу иногда не сообразишь, где исправлять надо.

Автор: AntonSaburov 26.3.2009, 15:39
Переделал большую часть - захотелось поделиться. Хотя еще не все сделал, но осталось немного - посему решил все-таки выложить.

Теперь коллекции с типизацией и вообще используют прелести Java 1.5.
Исправлял где мог ошибки, кое что добавлял или удалял.
Дизайн несколько подправил, сделал более стандартное оформление - дошли руки.
Теперь в каждой главе (осталось чуть-чуть) есть сразу исходные коды.
Постараюсь соблюсти нормальную кодировку - чтобы не было вопросов вместо текста.

Так что до середины апреля будет полное обновление. Можно сказать - редакция 2 smile

Заходите - http://www.java-course.ru/

А потом настанет пора для дальнейшего развития.

Автор: CrasyMen 2.4.2009, 21:52
AntonSaburov, у вас в примерах по хибернейту используется такой подход:
Код

List<Applicant> result = session.createQuery("from Applicant order by lastName, firstName").list();
// Насильная инициализация списка. Вообщем-то не очень хорошая практика так делать
for (Applicant a : result) {
      Hibernate.initialize(a.getProfession());
}
session.getTransaction().commit();

Как это можно сделать по другому? Я делаю свой пример и у меня насильная инициализация не сработает
Код

@Entity
@Table(name="categories")
public class Category {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="category_id")
    private Long categoryId;

    @Column(name="name")
    private String name;    

    @ManyToOne(cascade= {CascadeType.REFRESH}, fetch=FetchType.LAZY)
    @JoinColumn(name="parent")
    private Category parent;

потому как объект персистентного класса Category имеет в качестве поля объект того же класса.

Автор: CrasyMen 4.4.2009, 21:14
проблемма была в другом. я вызывал метод myCategory.getParent() тогда как myCategory была null

Автор: AntonSaburov 10.4.2009, 12:37
Принимаю замечания и пожелания:

http://www.java-course.ru/students/part19.html

Автор: ivg 10.4.2009, 16:51
Цитата(AntonSaburov @  10.4.2009,  14:37 Найти цитируемый пост)
Принимаю замечания и пожелания:

Часть 19 - Spring. Бизнес-уровень в действии 

Достойно. Нажал на [+].

Автор: unkis 13.4.2009, 12:34
Цитата(AntonSaburov @ 10.4.2009,  10:37)
Принимаю замечания и пожелания:

http://www.java-course.ru/students/part19.html

Спасибо за статьи очень поучительно, есть одна просьба, не могли бы вы в статьях указывать ссылки на раннее обсуждаемые места. к примеру здесь.
Цитата

Класс ProfessionView - класс для бизнес-уровня. Мы это обсуждали --->ранее<---. Это просто класс для хранения данных, которые будут использованы для интерфейса пользователя (Web или GUI)



Автор: AntonSaburov 13.4.2009, 16:04
Я попробую - просто упоминать все сложно smile

Автор: Omut 13.4.2009, 17:49
Следующая часть будет Spring MVC посвящена? Если так, Антон, не могли бы Вы осветить применение в качестве вью Velocity/Freemarker?

Автор: AntonSaburov 14.4.2009, 14:30
Пока не могу ничего обещать - если получится, то может быть.

Автор: unkis 14.4.2009, 16:01
Ну если принимаете пожелания, то мне бы было интересно про JBoss seam почитать.

Автор: AntonSaburov 14.4.2009, 17:59
Пожелания рассматриваются. Но никаких гарантий smile

Автор: serger 18.4.2009, 08:49
Я думаю всё же что лучше писать то, что "идёт", а не то, что просят.

Однако, добавлю: кстати, нет желания ещё добавить что нить про ant, maven и иже с ними?...

Автор: garbuz 20.4.2009, 22:06
Я бы тоже про Spring MVC почитал бы smile

Автор: AntonSaburov 30.4.2009, 12:27
Статья про Spring MVC готовится к выходу. Но там информации надо много, так что раньше конца мая ничего не будет.

Сегодня у меня знаменательное событие - впервые за все время существования проекта количество посещений за месяц приевысило 10 тысяч. Я конечно понимаю, что по сравнению с Винградом это просто слезы. Но для продолжения работы нужна поддержка и какое-то моральное удовлетворение - и сегодня я ее получил. 

Значит моя работа нужна. Спасибо вам всем.

Автор: AntonSaburov 14.5.2009, 14:31
Принимаю пожелания и замечания

http://www.java-course.ru/students/part20.html

Автор: AntonSaburov 18.5.2009, 12:44
ПЕРЕЕЗД !!! Я переехал на ресурс - http://www.java-course.ru/
Буду работать дальше. Всем спасибо за отклики.

Автор: FelixDS 8.6.2009, 16:44
я не в тему канешна с вопросом, но помогите плиз, если знаете. как поставить таймер в java? или подскажите, где найти информацию про это

Автор: batigoal 8.6.2009, 21:58
http://www.google.ru/search?source=ig&hl=ru&rlz=&=&q=java+timer&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&meta=lr%3D

Автор: SlavaSeverin 12.11.2009, 16:19
Начал разбраться с Java. По этому курсу сможет разобраться разве что профи. Есть ошибки, причём такого плана - не подключена библиотека без которой даже не создать класс. Напрмер один из начальных кодов по созданию визуальной формы! Я потратил приличный кусок времени на то что бы понять в чём дело. Так же там ещё 2 ошибке в примере на 15-20 строк. А в целом описано на должном уровне, но считаю что лучше писать попроще.  

Автор: AntonSaburov 17.12.2009, 17:51
Цитата(SlavaSeverin @  12.11.2009,  16:19 Найти цитируемый пост)
Напрмер один из начальных кодов по созданию визуальной формы! 

А конкретнее можно ? Перелопачивать весь код как-то не очень хочется smile

Автор: ibz07 20.12.2009, 02:49
2AntonSaburov У вас в планах есть уроки по NetBeans ?

Автор: AntonSaburov 21.12.2009, 17:49
Таких планов нет.

Хоть для примера курсы "Разработчик JEE" у нас построены на примерах для NetBeans, но надо пониматьЮ что NetBeans - это просто более удобный редактор. За вас писать программы он все равно не сможет. Облегчит немного жизнь. Но не более.

Автор: ibz07 21.12.2009, 20:57
Это я понимаю, нно знание среды разработки можно чичуть быстрее писать проги.

Автор: i_SweP 2.4.2010, 19:24
Цитата

Введение
Часть 1 - Используем коллекции
Часть 2 - Пользовательский интерфейс: начало
Часть 3 - База данных
Часть 4 - Пользовательский интерфейс, часть 1
Часть 5 - Пользовательский интерфейс, часть 2
Часть 6 - Пользовательский интерфейс, часть 3
Часть 7 - WEB: что такое Servlet ?
Часть 8 - WEB: что такое JSP ?
Часть 9 - Простое WEB-приложение
Часть 10 - Тестирование с точки зрения разработчика
Часть 11 - Application Server и Enterprise Java Beans
Часть 12 - Application Server и Enterprise Java Beans - копаем вглубь
Часть 13 - "Студенческий отдел кадров" в виде Enterprise-приложения
Часть 14 - Схема построения Enterprise-приложения
Часть 15 - Новая структура данных
Часть 16 - Hibernate. Начало пути
Часть 17 - Hibernate. Запись в виде XML-файлов
Часть 18 - Hibernate. Аннотации вместо XML
Часть 19 - Spring. Бизнес-уровень в действии
Часть 20 - Spring. Переходим на Web

Вот это здорово! Давно на форум не заходил и вдруг наткнулся на такой брильянт smile И сайт хороший (в смысле контента).
Ещё и на русском про используемые на рынке технологии, да... Если книга понравится, я к вам и на курсы приду ;)


Автор: AntonSaburov 8.4.2010, 17:10
Спасибо за отклик. Приходите.

Также появилась http://www.java-course.ru/students/part21.html

Автор: jk1 17.4.2010, 11:55
Спасибо за цикл статей, хорошо структурированный и понятный.

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

Автор: CrazyDeveloper 21.4.2010, 09:42
Здравствуйте. Из курса пока прочитал только оглавление. Судя по нему - это клад для начинающих разработчиков на Java. Рискну дать несколько советов:

1) Заменить аннотации Hibernate на JPA 2. Стандарт все таки. Позволяет уйти от конкретной реализации ORM. А в качестве реализации использовать тот же Hibernate. Недавно выпустили релиз Hibernate 3.5, который полностью реализует JPA 2.0, а там много чего интересного и полезного.

2) Все фреймворки в одной книге не описать. Кому-то нужен Struts, кто-то любит Spring MVC. Можно было бы тоже отталкиваться от стандартов Java EE и описать JSF 2.

Конечно, всем не угодить. А в общем, курс отличный. Желаю успехов.

Автор: CrazyDeveloper 21.4.2010, 10:47
Могу еще посоветовать такую штуку как http://webmaster.yandex.ru/ для проверки орфографии. Сам в последнее время стал прогонять статьи, которые публикую на своем блоге через него. Ошибок стало значительно меньше. Однако, этот инструмент не умеет работать с фреймами, но можно обойти эту проблему, указывая полный путь к html-файлу, например так: http://www.java-course.ru/students/intro.html.

Автор: AntonSaburov 21.4.2010, 17:59
Цитата(CrazyDeveloper @  21.4.2010,  09:42 Найти цитируемый пост)
1) Заменить аннотации Hibernate на JPA 2. Стандарт все таки.

В примерах нет аннотаций от Hibernate - только JPA.

И спасибо за теплые отзывы.

Автор: vogdb 23.8.2010, 11:36
Спасибо за курс. Приятно читать, хоть и знаком со всем, но что-то новое узнаю. Будете читать в Москве, дайте знать, я бы сходил.

Автор: Нек 31.8.2010, 18:30
Цитата(integral @ 2.10.2006,  23:13)
Я за.

Я тоже за.

Автор: sozin 25.12.2010, 13:24
Ну я бы не рекомендовал строить весь курс на одном проекте, так как если кто читал ActionScript3.0 Коллина Мука - это не самая удачная его работа. Ее нужно читать от начала и до конца, от корки до корки, что бы выучить ActionScript. А я как разработчик со стажем на AS2.0 считаю это очень утомительным когда передо мною стоит реальная задача. Мне надо свою работу делать, а там просят написать какой-то зоопарк.

Вот мои доводы и как бы я делал:
1) Иногда, после окончания курса, возникает потребность вернутся к хорошо забытому старому. И первоисточником станет ваше пособие, так как оно казалось бы хорошо знакомым. А что бы отыскать, то что надо придется вникать у забытый проект. И тут сработает элементарная человеческая лень. И начнется метание от книги до книги и гугл конечно.

2) Это должно быть что-то среднее между справочным пособием и учебником, как для школьником младших классов, если вы действительно хотите хорошо обучить своих подопечных (учитывая, что if они понимают только за три недели)

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

4) Не забудьте упомянуть о Java Code Convention. Так как хорошо написанный код - это читабельный код. Но не нужно загонять всех под один шаблон. Программисты - люди творческие. Просто нужно выделить основные моменты и сказать, что это хорошо, но если будет немножко иначе, то это не плохо, ну лучше бы так. 

5) Я тоже имею честь преподавать студентам и учить людей уму-разуму (кафедра информатики). Поэтому рекомендовал бы оснастит книгу примерами и подавать их различную реализацию. Демонстрируя, что можно делать по-разному. Это развивает мышление и дает пищу для раздумий. 

Если возникнут вопросы - задавайте их мне. вот моя почта [email protected]. В соавторы не набиваюсь. Просто приятно помогать людям, которые хотят помочь людям. 
               С найлучшими пожеланиями. Ждем от Вас бестселлера. )

Автор: nc30 2.1.2011, 19:58
AntonSaburov, спасибо за Ваш труд. Он мне весьма помог разобраться во многих моментах касательно основ разработки на Java. 

Скажу больше: благодаря Вашим проектам (сайту и курсам) у меня появился интерес к Java-программированию, в итоге я сменил направление деятельности (которому посвятил почти 10 лет) и устроился на работу по этой специальности.

Те, кто в теме, прекрасно знают что значит выкроить время (причем немалое) Senior Java developer'у, для создания и поддержания бесплатного ресурса, который помог (судя по отзывам) уже очень многим людям узнать что же такое Java и стал для одних первой ступенькой в освоении этого интересного направления, а для других — обзором ряда актуальных технологий.


С искренним уважением. Константин.

Автор: Metalex 5.6.2011, 01:23
AntonSaburov, вы работаете над очень хорошим проектом! smile 

Автор: AntonSaburov 14.7.2011, 17:28
Спасибо за добрые отзывы. К сожалению пока процесс застопорился - просто нет времени. Но я надеюсь, что это временно.

Автор: Mirkes 21.8.2011, 01:33
В программировании на Java я новичок, но вообще программирую очень давно. 
Успел прочитать пока тлько первую главу. Случайно ткнул в эту тему. Совет хоть напишите в теме на форуме не "Ваше мнение" а "учебное пособие" или "курс лекций от..."

Теперь содержательно по задаче.
Честно говоря диплом в котором студенческий отдел кадров был бы реализован так получил бы оценку неудовлетворительно не взирая на красоту реализвции. Поясняю. Всякий отдел кадров должен хранить историю. А у Вас студент удаляется. Причем окончательно. Начиная с этого места можно не интересоваться реализацией поскольку основной пользовательский функционал нарушен.
В начале Вы даете ссылку на то, что отдел кадров "игрушечный". Однако пр анализе задачи лучше указать полный функционал (хотя бы в набросках) а потом отобрать реализуемый функционал. Иначе создается странное впечатление.
В свое время я работал в программистском кооперативе. Там у нас был девиз "Дадим заказчику не то, что он хочет, а то, что ему нужно".
Вы в начале цикла озвучили близкую по звучанию идеологию. Я понимаю, что постановка задач на программирование отдельная большая и очень неблагодарная работа. Однако заикнувшись о прохождении пути разработки от начала до конца, сделайте начало более качественным. Что бы было понятно, что некоторые решения это не головотяпств, а сознательно принятые решения потому что...

А так проект очень интересный. Хотя некоторые решения просто спорные. Например сортировка студентов по ФИО и тоько потом по другим признакам.
Вероятн лучше было бы предкусмотреть несколько вариантов сортировки. Например для военкомата нужны списки студентов, упорядоченные по году (не путать с датой) рождения, а уже потом по фамилии. Девушки их не интересуют.
Кроме того введение второго интерфеса сортировки (вроде я правильно написал - интерфейса, если нет то я о том классе, который сравнивает студентов) показало бы разумность разделения студентов и интерфейсов сортировки. 

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

Автор: Mirkes 21.8.2011, 16:21
Часть вторая. 

    public static void main(String[] args) {
        // Запуск формы лучше производить в специальном треде
        // event-dispatching thread - EDT
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                MainFrame mf = new MainFrame();
                mf.setDefaultCloseOperation(EXIT_ON_CLOSE);
                mf.setVisible(true);
            }
        });
    }


Ну и конечно же метод main - первой строкой мы создаем объект, во второй строке мы устанавливаем поведение формы при закрытии (в данном случае мы говорим, чтобы при закрытии окна заканчивалось и приложение, а третья строка содержит метод, устанавливающий, что наша форма станет видимой. И все теперь готово. Приложение можно будет запускать.
ЗАМЕЧАНИЕ: Вы явно должны были обратить внимание на несколько необычный вызов в методе main. Такой вызов связан с тем, что все события внутри системы Swing происходят в отдельном треде - Event Dispatching Thread - EDT. Желательно (я бы сказал необходимо) ВСЕ операции с графикой делать в нем, т.к. некоторые операции не являются потоко-защищенными (т.е. если вы будете обращаться к форме из разных тредов, то результат может быть не очень красивый). Если вам пока сложно точно понять принцип такого запуска - просто пользуйтесь им. Позже разберетесь. 

Рекомендация понятна (почти понятна, а что общий (главный) поток нельзя сделать потоком событий?).
Однако в первой строке, даже если читатель догадается пропустить комментарии, не создается объект, а вызывается стандартная утилита, аргументом которой является создаваемый объект ...
Я не настаиваю на стиле, он у каждого свой, но большая точность в формулировках точно бы не помешала.
Еще один вопрос, применение слэнга это результат недосмотра или осознанное решение?
Честно говоря, меня треды вместо потоков раздражают. Но если это осознанное решение - Ваше дело.
паттерн - шаблон.

Есть соображения как давать грамматическую правку? Пока не договорились привожу исходный фрагмент и корректировку
очень просто приложение 
очень простое приложение 

нам необходимо будет его усложнить
нам придется его усложнить
Вряд ли усложнение приложения является самоцелью.

Кода Вам надо будет разместить 
Когда Вам надо будет разместить 

элементов управления на форме 
элементов управления в форме 
Вроде бы общепринятое "в", а не "на".
 
провели мышкой ?
провели мышкой?

модель, а потом сама модель может используя представление показывать свое содержимое (или контроллер может 
модель, а потом сама модель может, используя представление, показывать свое содержимое (или контроллер может 

Давайте для начала создадим достаточно простое приложение, которое не умеет многое. 
Давайте для начала создадим достаточно простое приложение, которое умеет не многое. 

виде числового слайдера (спинера). 
точно что не слайдера, слайдером называется совершенно другой тип компонентов.

Опять непонимание
        // Создаем нижнюю панель и задаем ей layout
        JPanel bot = new JPanel();
        bot.setLayout(new BorderLayout());
А какой layout по умолчанию? Мы же ничего не уточнили.
Судя по некоторым косвенным признакам это Map (вроде так называется).
Потом странные антитезы 
       // Вставляем панели со списками групп и студентов в нижнюю панель
        bot.add(left, BorderLayout.WEST);
        bot.add(right, BorderLayout.CENTER);

        // Вставляем верхнюю и нижнюю панели в форму
        getContentPane().add(top, BorderLayout.NORTH);
        getContentPane().add(bot, BorderLayout.CENTER);
Для нормального человека антитезой к WEST будет EAST, а к NORTH - SOUTH.

что появяться линейки прокрутки. 
что появятся линейки прокрутки. 

Из серии пожелалок. Чтобы данные не исчезали можно использовать файлы разного вида. БД  только один из вариантов. Наверно было бы не плохо обсудить, когда и какой тип использовать. Ведь храните же Вы конфигурационную информацию не в базе данных.

А вообще текст очень понравился. Я преподаю Паскаль, но попробую придерживаться Вашей схемы. Спасибо за идею.

Автор: Mirkes 21.8.2011, 21:34
Часть третья Базы данных

позволяет однообразно получать доступ
позволяет единообразно получать доступ

набор столбцов и любой количество строк
набор столбцов и любое количество строк
набор столбцов и произвольное количество строк

о чем буджет идти речь в дальнейшем
о чем будет идти речь в дальнейшем

<величина_поля_1> - это реальное значение поля для новой записи 
может везде писать значение? величина больно смахивает на допустимое число символов.

в тексте в части 3 написано
        g = new Group();
        g.setGroupId(1);
        g.setNameGroup("Первая");
        g.setCurator("Доктор Борменталь");
        g.setSpeciality("Создание собачек из человеков");
  
      groups.add(g);

а в текущей
INSERT INTO STUDENT_GROUP (GROUP_NAME, CURATOR, SPECIALITY)
VALUES ("Первая", "Доктор Борменталь", "Делание человеков из собачек")
  
Лучше, наверное сохранять приемственность.
   

понятных выражений - >, <, =, >=, <=, <> (больше, меньше, равно, больши или равно, меньше или равно, не равно). 
понятных выражений - ">", "<", "=", ">=", "<=", "<>" (больше, меньше, равно, больши или равно, меньше или равно, не равно). 
Это только предложение. Но зная SQL я при первом прочтении впал в ступор от оператора сравнения "- >". Потом конечно разобрался. А если человек не знал? решит что это как ссылка в с.

неколько условия, соединяя 
неколько условий, соединяя 

Предложение
имеет автоматическое увеличение. Кроме 
имеет автоматическое увеличение значения при добавлении новой записи. Кроме 

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

Вот здесь не уверен. Но в том диалекте SQL, с которым я работал команда удаления имела несколько другой вид
У Вас   DELETE FROM STUDENTS WHERE student_id=10
У меня DELETE * FROM STUDENTS WHERE student_id=10

группы с ИД 2 и 
группы с groupId = 2 и 

как в возрастающем так и возрастающем порядке
как в порядке возрастания значений, так и в порядке убывания значений 
или
как в порядке возрастания, так и в порядке убывания значений 

отсутствуют точки в конце предложений
Когда установка предложит Вам завести нового пользователя - можно это сделать, но надо запомнить введенные параметры. В принципе нам этот пользователь не понадобится. Можете выбрать "Skip Sign-Up" 
Далее Вы можете выбрать все установки по умолчанию. НО НАДО остановиться на экране, где Вас попросят установить поддержку языка. Установите второй пункт из трех - поддержка UTF-8 
И наконец на экране смены пароля для администратора поставьте пароль root. Все примеры работы с базой рассчитаны на него. Хотя если вам захочется другой - будет повод повозиться еще 

в каталог <MySQL_DIR>/bin. И запустите команду. Само 
в каталог <MySQL_DIR>/bin. И запустите команду, приведенную ниже. Само 
Я успел подумать о том, какие же команды MySQL я знаю и установил что с консоли я с ней не работал. И только после этого нашел команду в тексте.

для заполнения нашей базы данных некоторыми данными
Глаз режет, но предложений нет.

Поля для ИД групп и студентов 
Поля для идентификаторов групп и студентов ???
Честно говоря эти ИД сильно режут глаза. Может их всеже как-то внятно назвать? Или явно сказать, что уникальные поля в таблицах мы обобщенно будем называть ИД ами?

данных разрабатывает драйвера для общения 
Вообще говоря по правилам Русского языка драйверы.

обратите внимание, что большинство операция для 
обратите внимание, что большинство операций для 

Коннектов получить - установить соединений. или открыть сеансов работы?
Это я опять занудствую по поводу слэнга, поскольку пока не знаю причину его появления в тексте.

 для запуска на потребуется подключить 
 для запуска нам потребуется подключить 
но скорее
 для запуска Вам потребуется подключить 

К сожелению время истекло. С удовольствием дочитаю завтра. действительно с удовольствием.

Автор: Mirkes 22.8.2011, 15:03
командная строка для запуска будет выглядеть вот так 

java -cp .;mysql-connector-java-3.1.13-bin.jar TestJDBC 

неплохо было бы пояснить, что -cp означает CLASSPATH (если я конечно правильно понял, точка означает *.* - все файлы из текущего каталога, а ; разделитель аргументов.

теперь они порождают исключение SQLException.
теперь они могут порождать исключение SQLException.

Вопрос. Правильно ли я понял, что все компоненты в листинге в конце третьей части без слушателей?
Просто возник забавный вопрос о том, что при переводе студентов в другую группу изменения вносятся только в базу данных без синхронизации наборов с тем, что отображается на экране? Или это будет разобрано дальше?

Еще раз спасибо, очень интересно и по большей части понятно.

Автор: Mirkes 22.8.2011, 21:17
Часть пятая 

Список - model и listeners. 
Список - model и listener. 
или
Список - models и listeners. 
Наверное первый исправленный вариант лучше, поскольку термин listener, а про множественное число в английском читатель знать не обязан.

Предварительно сделаем вот какое замечание - наш список на самом деле уже имеет некоторую модель. Но она не является стандартной и что она умеет точно - мы не знаем.

Можно вопрос на понимание. В тексте класса не замены модели. То есть поставлена модель по умолчанию - то что ставится всегда, когда пользователь(программист) не указал нужного значения явно. Или в этом случае ставится что кому под руку попадется и результат зависит от каких-то внешних условий? Например, от версии JVM. Может речь должна идти не о том, что свойства до конца не известны, наверное они документированы, а о том, что для нашей работы эта модель-затычка не подходит?

        JButton add = new JButton("Add");
        JButton del = new JButton("Del");
Существует такой набор правил по оформлению текстов. Одно из правил звучит как "не сокращ". Не стоит сокащать то, что вылазит наружу. Пусть лучше будет Delete. Позиционируя свой текст как учебное пособие Вы взвалили на себя еще и воспитательную функцию.

Вопрос на понимание.
Почему не установить List нужную модель один раз? Зачем постоянное приведение? И что все модели для одного шаблона (паттерна) всегда приводимы? Или это верно только для списка?
В этом месте осталась недосказанность.

Автор: Mirkes 23.8.2011, 16:20
Часть шестая

Добавим две кнопки внизу списка групп 
Добавим две кнопки ниже списка групп 
или
Добавим две кнопки под списком групп 

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

нашу панель для групп не сжимаемую по ширине
нашу панель для групп не сжимаемой по ширине

Добавим пункты меню "Отчеты", где мы сможем получать различные отчеты. На сегодня у нас только один отчет - список всех студентов. 
ВИдимо лучше "Создадим меню и добавим в него пункт "Отчеты"...

Вопрос на понимание. В одном файле можно создавать несколько классов? То есть можно создат один public и сколько угодно не public?
Они будут доступны во всем пакете или только в том файле, в котором описаны. Или речь идет о вложенном классе? Но вложенный класс вроде бы должен описываться внутри описания объемлющего класса. Разве нет?

        // Делаем спин-поле
        // 1. Задаем модель поведения - только цифры        // 2. Вставляем в панель
        SpinnerModel sm = new SpinnerNumberModel(2006, 1900, 2100, 1);

Господа, ради бога не уподобляйтесь дикторам радио и ТВ, не знающим разницы междй цифрами и числами. Вы де не пробуете назвать метод SpinnerDigetModel

Тем более, что бОльшая часть работы 
Тем более, что большая часть работы 

Автор: Mirkes 23.8.2011, 21:34
Часть 6.
фрагмент 
        c.gridwidth = GridBagConstraints.RELATIVE;
        c.fill = GridBagConstraints.BOTH;
        btnOk.setName("OK");
        // Добавляем листенер для кнопки
        btnOk.addActionListener(this);
        // Устанавливаем это правило для нашего компонета
        gbl.setConstraints(btnOk, c);
        // Добавляем компонент
        getContentPane().add(btnOk);

отличается по качеству от трех предыдущих видимо стоит привести его к следующему виду

       // Кнопка ОК Устанавливаем имя для последующей идентификации в обработчике события
        btnOk.setName("OK");
        // Добавляем листенер для кнопки
        btnOk.addActionListener(this);
        // После него можно будет еще помещать компоненты
        c.gridwidth = GridBagConstraints.RELATIVE;
        // Растягиваем компонент по всему пространству для него
        c.fill = GridBagConstraints.BOTH;
        // Компонент по прежнему привязан к левому краю (левой части?)
        // Устанавливаем это правило для нашего компонета
        gbl.setConstraints(btnOk, c);
        // Добавляем компонент
        getContentPane().add(btnOk);

аналогично стоит откомментировать один раз и следующий фрагмент

       // Кнопка Cancel. Устанавливаем имя для последующей идентификации в обработчике события
        btnCancel.setName("Cancel");
        // Добавляем листенер для кнопки
        btnCancel.addActionListener(this);
        // Все настройки менеджера размещения сохраняем
        // Устанавливаем это правило для нашего компонета
        gbl.setConstraints(btnCancel, c);
        // Добавляем компонент
        // Добавляем компонент
        getContentPane().add(btnCancel);

Текст помеченный красным по-моему можно спокойно выкинуть, поскольку он ни на что не влияет. Или я ошибся?


        setBounds(((int) d.getWidth() - GroupDialog.D_WIDTH) / 2, ((int) d.getHeight() - GroupDialog.D_HEIGHT) / 2,
                GroupDialog.D_WIDTH, GroupDialog.D_HEIGHT);

Я не понял приведения типа d.getWidth() к int вместо использования d.width? Стоило ли брат плавающее число для приведения к целому виду?


    // Возврат года, который установлен на форме
    // Возврат года, который установлен в форме

    // Возврат группы, которая установлена на форме
    // Возврат группы, которая установлена в форме


                    // Задаем ему режим модальности - нельзя ничего кроме него выделить
видимо не совсем точно - ни один элемент НАШЕГО приложения, кроме тех, что находятся в диалоге не будет реагировать на попытки работы с ним.

Отметим, что ИД студента должно где-то храниться и если этот ИД будет больше 0 
Отметим, что ИД студента должен где-то храниться и если этот ИД будет больше 0 

Но я думаю, что это больше затруднит нам работу
Но я думаю, что это только затруднит нам работу

 Он вообщем-то совсем ничего не делает, но правила языка требуют. 
Он не делает ничего специфичного для класса Student, но он необходим для инициации стандарного набора служебных полей.

    // Второй параметр содержит знак - добавление студента или исправление
    // Второй параметр содержит признак - добавление студента или исправление

        // Сделаем имя такое же, как требуется в баще данных - М/Ж
        // Сделаем имя такое же, как требуется в базе данных - М/Ж

Предложение сделать форму отчета звучит пугающе, но если отчет не надо печатать, то она (форма) описана в предыдущей части.
Кстати, а вопросы распечатки отчета рассматриваться будут? для такого отдела кадров печать отчета важнее интернета.
Спасибо большое получил удовольствие от чтения и узнал много нового.

Автор: vav84 20.10.2011, 17:53
Добрый день!

Огромное спасибо автору проекта за популярное обьяснение актуальных технологий программирования.  Так или иначе но постепенно обьявления о вакансиях Java-разработчиков шаг за шагом перестают быть для меня набором бессмысленных аббревиатур. Боюсь предположить сколько времени мне бы пришлось на изучение всех этих простых истин. 
При изучении раздела 12 "Application Server & Enterprise Java Beans" в EJB- части у меня возникла проблема, причем там где совсем ее не ждал.  Суть такова: не могу создать класс сущностей из БД. Конкретно: JDBC-драйвер находится и подключается, в мастере нового соединения с БД ввожу адрес/порт, имя БД, логин/пароль жму "Проверить соединение"- все хорошо. Ввожу имя JNDI "jdbc/Students" и кликаю ОК: система ищет схему БД но не находит никаких доступных таблиц((((  и в тоже время не выводит никаких предупреждений или сообщений об ошибках. 
Исходные данные:
NetBeans IDE 7.0.1 (Build 201107282000)
Java: 1.6.0_26; Java HotSpot™ Client VM 20.1-b02
MS SQL Server 2005, пользователь sa.
Господа-знатоки, в чем может быть причина?)))

Автор: Kangaroo 25.10.2011, 23:36
vav84, у меня были проблемы в связке MS SQL/Java с правами для пользователя sa. Попробуй другую БД.

Автор: Pawl 10.2.2013, 00:33
Спасибо за публикации, некоторые были мне очень полезны. Было бы неплохо, если бы Вы такзе подробно пояснили процесс совместной разработки проекта (я имею ввиду работу с репозиториями: настройку IDE, размещение и получение файлов проекта и пр.).
Спасибо!

Автор: AntonSaburov 10.2.2013, 20:23
Mirkes - спасибо большое за технические правки неточностей, оговорок и не совсем корректных выражений. Я постараюсь исправить то, что Вы отметили.

vav84 - EJB делались для достаточно"пожилой" версии NetBeans и Glassfish, так что их работоспособность уже вряд ли реальна. Пока нет возможности сделать новую редакцию даного курса. Хотя кто его знает - может быть смогу осилить. Но на это надо время.

Автор: Romper 18.4.2013, 00:54
перезалейте пожалуйста картинки, вроде все не работают

например тут http://java-course.ru/student/book1/servlet/ нет http://java-course.ru/students/images7/figure_7_1.png

Автор: Rasool 13.6.2014, 13:28
Глюк

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)