Обсуждение

Разработка он-лайн библиотеки на Java

Тема в разделе "Обсуждение инфопродуктов", создана пользователем Никола Иванов, 27 ноя 2013.

?

Если вы пробовали обучаться по курсам Батыршинова, получили ли вы обещанные знания?

  1. Поддерживаю мнение, что его курсы знаний не дают

    11,8%
  2. Что-то ухватить можно...

    64,7%
  3. Я полностью прошёл курс Батыршинова и овладел заявленными знаниями

    23,5%
  1. 27 ноя 2013
    #1
    Никола Иванов
    Никола Иванов ЧКЧлен клуба
    Считаю обучение по этому и другим курсам Батыршинова (например "Быстрый старт в Java" или "Базы данных и Java"), потерянным временем. Половину он "уже сделал" без всяких объяснений, половину нужно самому догадываться. А в курсе по базам данных вообще начал создание таблиц с названий, хотя и ежу понятно, что любые таблицы должны начинаться с индекса. Потом исправляет, а затем ничего не объяснив, задаёт заполнение таблиц данными в домашнее задание. Скорее всего он и сам толком не знает предмета, потому и устраивает продажи анлимитед и того что было и того что БУДЕТ!
    Конкретно в этом курсе, соединение с базой MySql (25 урок) не объяснил(очередное "я уже сделал"), какая у него версия NetBeans и Java не понятно, у меня 7.4 и соединения за три дня добиться так и не удалось. Ну а без соединения с базой, дальнейшее изучение курса этого халтурщика не имеет смысла.
    Также и с другими вышеуказанными его "курсами" сплошные домашние задания без предварительных объяснений.
    Ведь домашние задания существуют исключительно для укрепления полученных знаний, а у него - обучайтесь самостоятельно, а я потом проверю!
    Спрашивается, а за что платили такому преподавателю? За - "Не женитесь на курсистках, они толсты как сосиски"!?
    Просто жаль потерянного времени на первые 25 уроков да и по остальным его творениям - потерянное время и деньги.
     
  2. 27 ноя 2013
    #2
    olegdal
    olegdal ЧКЧлен клуба
    Можно попытаться загрузить исходники уроков, в которых подключение к БД реализовано и уже дальше идти, основываясь на них.
     
  3. 27 ноя 2013
    #3
    mikluxo
    mikluxo ЧКЧлен клуба
    Собственно, у меня по его методу получилось настроить, правда интерфейс глассфиша у меня немного другой. Но не суть.
    устанавливаешь msi установщиком mysql. Обязательно устанавливаешь Connector J(Mysql JDBC driver).
    идешь в папку C:\Program Files (x86)\MySQL\MySQL Connector J
    достаешь jar и ложишь к серверу Glassfish в lib.
    Далее делаешь настройки такие же, как говорил Тимур. Если есть сложности, думаю можем здесь поискать совместно решение. Все работает.
     
  4. 28 ноя 2013
    #4
    Никола Иванов
    Никола Иванов ЧКЧлен клуба
    (Начиная с урока 25) Всё именно так и делал, всё собирается и развёртывается, но в итоге список названий книг не выводится, а выводится вот что:

    INFO: visiting unvisited references
    SEVERE: java.sql.SQLSyntaxErrorException: Таблица/просмотр 'BOOK' не существует.
    at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
    at org.apache.derby.client.am.Statement.executeQuery(Unknown Source)
    at com.sun.gjc.spi.jdbc40.StatementWrapper40.executeQuery(StatementWrapper40.java:234)
    at testjdbc.TestConnection.check(TestConnection.java:25)
    at org.apache.jsp.main_jsp._jspService(main_jsp.java:75)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:744)
    Caused by: org.apache.derby.client.am.SqlException: Таблица/просмотр 'BOOK' не существует.

    at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source)
    at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source)
    at org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source)
    at org.apache.derby.client.am.Statement.flowExecute(Unknown Source)
    at org.apache.derby.client.am.Statement.executeQueryX(Unknown Source)
    ... 37 more
    И что делать с этим непонятно, так как ошибка переходит и в следующие уроки, и продолжать уже бесполезно
    Нашёл наконец-то (на 5й день!) ошибку. Он в своём изложении допустил ошибку при создании ссылки в файле web.xml (у него из-за этого на скрине в классе соединения получилась ссылка "DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/Library");" затем он исправился на видео и тогда ссылка в классе соединения должна стать "DataSource ds = (DataSource) ic.lookup("jdbc/Library");" ) и не потрудился показать класс с правильной ссылкой, из-за этого и было потеряно так много времени и сил. Может быть, кому то у кого также соединение не получается, исправить его косяк с ссылкой, и тогда соединение установится. Так что это ещё раз подтверждает, что он халтурщик!
    Кстати у него эта ошибка и во ВСЕХ последующих исходниках не исправлена!
    В файлах для соединения (Database.java) у него везде ссылка - ds = (DataSource) ic.lookup("java:comp/env/jdbc/Library");
    а должно быть:
    ds = (DataSource) ic.lookup("jdbc/Library");
    Только тогда всё работает!
     
    Последнее редактирование модератором: 28 ноя 2013
    1 человеку нравится это.
  5. 28 ноя 2013
    #5
    mikluxo
    mikluxo ЧКЧлен клуба
    Ты не поверишь. Но ты не прав. У меня работает именно так, как указано у него. Exception был
    java.sql.SQLSyntaxErrorException: Таблица/просмотр 'BOOK' не существует.

    Это означает, что ты таблицу book не создал.
    У него в базе создается таблица books.

    хотя нет. таблица book тоже создается. Но смысл в том, что коннект работал нормально. MYSQL сообщил, что book не найден.
     
    Последнее редактирование модератором: 28 ноя 2013
  6. 28 ноя 2013
    #6
    Никола Иванов
    Никола Иванов ЧКЧлен клуба
    Проблема в том, что если как у него стоит ссылка "ds = (DataSource) ic.lookup("java:comp/env/jdbc/Library");"
    то это ссылка не на ресурс, а на среду(env) ресурса, то есть если создать ссылку так как от начал делать,
    то тогда эта ссылка правильно работает.
    Но он говорит, что мол ошибся и создаёт ссылку выше, просто на ресурс, но тогда и в DataSource должно быть
    исправлено, то есть должно быть "ds = (DataSource) ic.lookup("jdbc/Library");"
    а он об этом ничего не говорит.
    Попробуй запустить следующие лабы - LIbrary_3 и Library_4
    Там такая же ситуация.
    В классе стоит ссылка на среду ресурса, а web.xml ссылка просто на ресурс.
     
    1 человеку нравится это.
  7. 28 ноя 2013
    #7
    mikluxo
    mikluxo ЧКЧлен клуба
    ссылка на ресурс web.xml.
    <resource-ref>
    <res-ref-name>jdbc/library</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>

    Обращение к ресурсу из исходника:
    InitialContext ic = new InitialContext();
    DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/library");
    Connection conn = ds.getConnection();
    Statement statement = conn.createStatement();
    ResultSet rs = statement.executeQuery("select * from book");


    В общем хз, но пока работает :)
     
  8. 8 дек 2013
    #8
    mikluxo
    mikluxo ЧКЧлен клуба
    Лучше изучением русского языка займись. Проект входит в складчину, а распространять материал запрещено.
     
  9. 18 дек 2013
    #9
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    Спасибо тебе. Была таже ошибка, исправив как ты указал - все заработало. Т.е. надо ic.lookup("jdbc/Library");"
     
    Последнее редактирование модератором: 18 дек 2013
  10. 30 дек 2013
    #10
    qaz97147
    qaz97147 ЧКЧлен клуба
    В 26-м уроке в левом меню у него выводится список авторов. В 27-м уроке там внезапно оказывается список жанров. Для меня, конечно, непринципиально, суть работы несильно меняется, но все же...
     
  11. 14 янв 2014
    #11
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    В 43 уроке в проекте с домашним заданием по hibernate делаю как у него, вылазит ошибка Cant instantiate class: by.library.jsf.controllers.BookListController. Причем как на моем проекте так и на его. В следующем проекте ошибка так же не исчезает. Кто-нибудь уже дошел до данного урока?
     
  12. 15 янв 2014
    #12
    mikluxo
    mikluxo ЧКЧлен клуба
    нигде. Либо подниматься до Члена клуба и участвовать по удвоенной цене. Либо повтор оформлять.
     
    Последнее редактирование модератором: 15 янв 2014
  13. 15 янв 2014
    #13
    Сухов
    Сухов ОргОрганизатор
    За такие вопросы здесь в бан улетают!
    Устав клуба

    Пулей улетел Правила учить! Устное предупреждение!
     
  14. 16 янв 2014
    #14
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    Разобрался, не знаю как у него работает, но у меня заработало только после того, как сделал следующие преобразования в классе DataHelper
    Criteria criteria = getSession().createCriteria(Book.class);
    Long total = (Long)criteria.setProjection(Projections.rowCount()).uniqueResult();
    Integer tt = total.intValue();
    currentPager.setTotalBooksCount(tt);
    Т.е. в запросе критерии изменил Integer на Long, хотя можно и на Object и походу это будет правильнее, а затем получившееся значение преобразовал к Integer
     
  15. 16 янв 2014
    #15
    mikluxo
    mikluxo ЧКЧлен клуба
    версия hibernate разная у тебя и у него? Я когда проект с версии 2 переводил, тоже заметил прикол, что они Integer на Long поменяли. Поэтому возможно что ты используешь новый хайбер(3+).
     
  16. 16 янв 2014
    #16
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    У него 3.2.5, у меня 3.6.10 - неужели настолько сильно результат запроса может отличаться
     
  17. 16 янв 2014
    #17
    mikluxo
    mikluxo ЧКЧлен клуба
    api постоянно дорабатывается, поэтому при обновлении конечно что-то несоответствует и приходится переписывать. Но Integer на Long поменять, не так уж и сложно ;)
     
  18. 16 янв 2014
    #18
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    Самое сложное понять, что конкретно изменить нужно - я 3 дня убил чтоб разобраться
     
  19. 20 янв 2014
    #19
    mikluxo
    mikluxo ЧКЧлен клуба
    это правилами запрещено и будет трактоваться как обмен контактами.
     
    Последнее редактирование модератором: 1 фев 2014
  20. 23 янв 2014
    #20
    pasha_2001
    pasha_2001 ЧКЧлен клуба
    Еще один глюк в лекциях - начиная с 45й лекции в проектах тимура перестает работать повторный поиск, т.е. например при первом нажатии на жанр - показываются нужные книги, при втором и последующем нажатиях - ничего не происходит, на нажатия на жанр, буквы и т.д ничего не происходит. Что Тимур намутил опять?

    Похоже связано с некорректной работой AjaxStatus - как решить пока не разобрался

    Сорри что часто пишу, в общем на самом деле проблема в AjaxStatus, а точнее в областях, которые необходимо обновлять, у Тимура они заданы неправильно, изза чего происходит вышеуказанный глюк. В итоге надо самостоятельно просмотреть и указать правильно все области обновления. Вот только одного не пойму - у него в лекциях все красиво работает, так какого х.. в продажный курсах он выкладывает недоработанные проекты?
     
    Последнее редактирование модератором: 1 фев 2014