Для входа на форум нажмите здесь
Computer programming
Автор темы: Aft3rmath_renamed_580476_10042022
Дата создания:
Old 18.04.2011, 21:27
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Код java, но не суть важно. Важен принцип и смысл паттерна DAO.

Answer - класс-сущность. Описание таблицы в БД.

AnswerDAO - интерфейс, описывающий основные операции с таблицей

AnswerDAOImplementation - класс, реализующий интерфейс AnswerDAO и выполняющий реальные действия.

В данном коде используется навороченная настройка.

Аффтару по аналогии вместо этой надстройки надо написать свой код, обращающийся к БД (используя SqlCommand и запросы SQL).




Code:
@Entity
@Table(name = "answers")
public class Answer implements Serializable {
    
    /**
     * 
     */
    private static final long serialVersionUID = 7342556181297264760L;
    private Long answerId;
    private String answer;
    private Boolean correct;

    private Question question;

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "ANSWER_ID", unique = true, nullable = false)
    public Long getAnswerId() {
        return answerId;
    }

    public void setAnswerId(Long answerId) {
        this.answerId = answerId;
    }

    @Column(name = "ANSWER_TEXT", nullable = false)
    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    @Column(name = "IS_CORRECT", nullable = false)
    public Boolean getCorrect() {
        return correct;
    }

    public void setCorrect(Boolean correct) {
        this.correct = correct;
    }

    @ManyToOne
    public Question getQuestion() {
        return question;
    }

    public void setQuestion(Question question) {
        this.question = question;
    }

    public Answer() {
    }

    public Answer(String answer) {
        this.setAnswer(answer);
    }

    public Answer(String answer, Boolean correct) {
        this.setAnswer(answer);
        this.setCorrect(correct);
    }

    @Override
    public boolean equals(Object object) {
        return (object instanceof Answer
                && this.getAnswerId() == ((Answer) object).getAnswerId());    
    }
    @Override
    public int hashCode(){
        return this.answerId.hashCode();
    }
}

public interface AnswerDao {

    void save(Answer answer) throws HibernateException, DataAccessException;

    void update(Answer answer) throws HibernateException, DataAccessException;

    void delete(Answer answer) throws HibernateException, DataAccessException;
    
    Answer getAnswerById(Long answerId) throws HibernateException, DataAccessException;
    
    Collection<Answer> listAllAnswers() throws HibernateException, DataAccessException;
    
    Collection<Answer> listAllCorrectAnswers() throws HibernateException, DataAccessException;

}

@Repository("answerDao")
public class AnswerDaoImplementation implements AnswerDao, Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 4421972949752535365L;
    private SessionFactory sessionFactory;

    @Autowired
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @Override
    @Transactional
    public void save(Answer answer) throws HibernateException, DataAccessException {                        
        this.sessionFactory.getCurrentSession().save(answer);        
    }

    @Override
    @Transactional
    public void update(Answer answer) throws HibernateException, DataAccessException {                    
        this.sessionFactory.getCurrentSession().update(answer);        
    }

    @Override
    @Transactional
    public void delete(Answer answer) throws HibernateException, DataAccessException {
        this.sessionFactory.getCurrentSession().delete(answer);        
    }

    @Override
    @Transactional(readOnly=true)
    @SuppressWarnings("unchecked")
    public Collection<Answer> listAllAnswers() throws HibernateException, DataAccessException {        
        return this.sessionFactory.getCurrentSession().createQuery("from Answer").list();        
    }

    @Override
    @Transactional(readOnly=true)
    public Answer getAnswerById(Long answerId) throws HibernateException, DataAccessException {
        return (Answer)this.sessionFactory
            .getCurrentSession()
            .createQuery("from Answer as answer where answer.answerId = :aid")
            .setParameter("aid", answerId).uniqueResult();        
    }

    @Override
    @Transactional(readOnly=true)
    @SuppressWarnings("unchecked")
    public Collection<Answer> listAllCorrectAnswers()
            throws HibernateException, DataAccessException {
        return this.sessionFactory
        .getCurrentSession()
        .createQuery("from Answer as answer where answer.correct = :correct")
        .setBoolean("correct", true)
        .list();
    }    
    
}

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Old 18.04.2011, 21:30
Re: ADO.Net + C#
я нихуя не понимаю
мне конечно жалко будет выкидывать свои датасеты, на локализацию тупых ошибок которых я потратил все выходные (типа ошибки параллелизма, затронуто 0 из 1 возможной записи, убил 7 часов на то, чтобы понять, что не выбрал селектом АктерID, по которому шло условие WHERE :D) , но если альтернатива с применением датаадаптеров и этих встречающихся на практике ваших компонентов займет в написании и понимании часа 3-4, то я с радостью

Добавлено через 1 минуту
Originally Posted by ВедхийТип:
передай автору. что авторитетные пацаны с форума линейки сказали, что он лох.
так то я гнул на кадмусе, в потом ботил на новый комп и ноут 8( а кто что сказал?
Last edited by Aft3rmath_renamed_580476_10042022; 18.04.2011 at 21:30. Reason: Добавлено сообщение
Old 18.04.2011, 21:32
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Originally Posted by Aft3rmath:
тема курсача - адаптеры
Это печально. Я думал, что главное - решить задачу.

Значит внмиательно читай MSDN про адаптеры. И ищи примеры решения на codeguru.com

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Old 18.04.2011, 21:33
Re: ADO.Net + C#
вот читаю этот топ и хочу пойти заняться курсовой вплотную,мотивируете с*ки

Old 18.04.2011, 21:34
ВедхийТип's Avatar
Предводитель
Join Date:
28.09.2007
Re: ADO.Net + C#
Originally Posted by Aft3rmath:
так то я гнул на кадмусе, в потом ботил на новый комп и ноут 8( а кто что сказал?
я имел введу препода..... исправил
Old 18.04.2011, 21:38
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Originally Posted by Aft3rmath:
я нихуя не понимаю
http://www.gotdotnet.ru/blogs/msdn/6343/

Фтыкай. Так делают нормальные разработчики.

Вот ,кстати ,еще один сайт с толковыми статьями, ИМХО. Он вообще целиком по дотнету.

Добавлено через 1 минуту
http://www.sql.ru/forum/actualtopics.aspx?bid=12

Вот еще форум.

Добавлено через 1 минуту
Описание паттерна DAO:

http://java.sun.com/blueprints/corej...essObject.html

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

http://java.sun.com/blueprints/corej...rns/index.html - описание всех паттернов.

Все так или иначе переносимо на C#.

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Last edited by Leledinn; 18.04.2011 at 21:39. Reason: Добавлено сообщение
Old 18.04.2011, 21:38
Re: ADO.Net + C#
аа, препод лох, а то мне уже обидно стало
спасибо всем, буду пробовать ща с пушком, о резах отпишу)
Old 18.04.2011, 21:50
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Originally Posted by Aft3rmath:
аа, препод лох, а то мне уже обидно стало
Скорее всего, у него определенная образовательная программа. Всмето того ,чтобы его лохом обзывать - задайте ему вопрос на семинаре/лекции. Вот если он категорически откажется отвечать на него - тогда лох. Если же пообещает разобраться сам и объяснить вам или обсудить - тогда ловите момент. Нормальный преподаватель ,видя заинтересованность студента, как правило идет навстречу.

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

Добавлено через 4 минуты
Есть два правила:

- Не изобретай велосипед.
- Изобретай велосипед.

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

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Last edited by Leledinn; 18.04.2011 at 21:50. Reason: Добавлено сообщение
Old 18.04.2011, 21:58
Re: ADO.Net + C#
Originally Posted by gronot:
вот читаю этот топ и хочу пойти заняться курсовой вплотную,мотивируете с*ки
я тут второй час на Delphi ностальгирую, ибо препод ничего кроме него не знает и требует на нём курсовую.

и уже второй раз вспоминаю афоризм: "Языки в которых есть оператор := - обречены".
Old 18.04.2011, 22:20
ВедхийТип's Avatar
Предводитель
Join Date:
28.09.2007
Re: ADO.Net + C#
Originally Posted by Leledinn:
Всмето того ,чтобы его лохом обзывать - задайте ему вопрос на семинаре/лекции.
Когда я спрашивал у своего препода, почему мы не изучали патерны, когда проходили шарп, он сказал, что большинство бы не поняло о чем речь. Я на это смотрел с изумлением, потому что без этого программирования вообще нет. Я вообще после окончания уже когда читал книгу по патернам ооп - это было как откровение: какого черта я делал в академии? почему я там не изучал это? ведь ради этого и задумывалась вся эта карусель с обьектами...

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

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

а вот то что препод даст заднюю я уверен на 110%. Именно по этому он лох.

Добавлено через 12 минут
In JavaScript:
'5' + 3 gives '53'

Whereas
'5' - 3 gives 2




з.ы. еще пара таких месяцев как этот и я веб дизайнер мле... я не хочу быть веб дизайнером.... .
Last edited by ВедхийТип; 18.04.2011 at 22:20. Reason: Добавлено сообщение
Old 18.04.2011, 23:19
Re: ADO.Net + C#
Originally Posted by Leledinn:
Скорее всего, у него определенная образовательная программа. Всмето того ,чтобы его лохом обзывать - задайте ему вопрос на семинаре/лекции.
Да я и не обзывал, просто груз с душы сбросил, когда понял что не мне адресовано
А вобще я преподов уважаю, как ни странно у нас в универе все преподы нормальные, и когда прошу что-либо объяснить всегда соглашаются, сидят внеурочно и т.д., только по этому они уже не "лохи" (слово то смешное какое) по дефолту

Завтра кстати спрошу у препода о своем вопросе, но так задней мыслью уже решил для себя все сделать нахер без связей с голыми айди полями и с добавлением по внешним ключам вручную
лучше в сэкономленное время почитаю что-нибудь по теме
а вобще столько вещей, которые не то что даже нужно учить, а реально интересно и есть желание вдупляться, но хз как время организовать =\
Всем огромное спасибо еще раз! =*
Old 18.04.2011, 23:29
Re: ADO.Net + C#
ne blagodari hule

Old 18.04.2011, 23:29
ВедхийТип's Avatar
Предводитель
Join Date:
28.09.2007
Re: ADO.Net + C#
эх, другие люди, другой опыт

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

я учился.

только потом я понял, что учили меня не тому и не так. :\



з.ы. ладно. делайте как считаете нужным.
Old 18.04.2011, 23:40
Re: ADO.Net + C#
Originally Posted by ВедхийТип:
эх, другие люди, другой опыт

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

я учился.

только потом я понял, что учили меня не тому и не так. :\



з.ы. ладно. делайте как считаете нужным.
я не пропустил мимо ушей ни 1 замечания из этой темы, просто не вижу смысла судорожно именно сейчас осваивать новые вещи и пытаться сделать курсовую сродни коммерческому проекту
но учиться тем вещах, о которых вы говорите, естественно придется
Old 18.04.2011, 23:41
SoftEx
Guest
Re: ADO.Net + C#
Originally Posted by ВедхийТип:
з.ы. еще пара таких месяцев как этот и я веб дизайнер мле... я не хочу быть веб дизайнером.... .
это ужасно. Всегда стараюсь открещиваться по максимуму от javascript, он мне совершенно не импонирует как язык.
Old 18.04.2011, 23:58
ВедхийТип's Avatar
Предводитель
Join Date:
28.09.2007
Re: ADO.Net + C#
Originally Posted by Aft3rmath:
я не пропустил мимо ушей ни 1 замечания из этой темы, просто не вижу смысла судорожно именно сейчас осваивать новые вещи и пытаться сделать курсовую сродни коммерческому проекту
но учиться тем вещах, о которых вы говорите, естественно придется
тяжело в учебе - легко на работе.

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

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

ладно. не буду пилить мозг.

удачи. ;)

Originally Posted by SoftEx:
это ужасно. Всегда стараюсь открещиваться по максимуму от javascript, он мне совершенно не импонирует как язык.
жаба скрипт еще куда ни шло, а вот мать его CSS с драным IE и не дай бог Opera - это кошмар на яву.

ща просто нет выборы - маркаперы заняты, а тут я как на зло сдал экзамен по CSS.

ппц

Добавлено через 53 секунды
самое плохое - это что я даже теперь употребляю их слова:
- красивое
- вау
- симпатично
- ой

и другая херь
Last edited by ВедхийТип; 18.04.2011 at 23:58. Reason: Добавлено сообщение
Old 19.04.2011, 07:59
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Originally Posted by ВедхийТип:
самое плохое - это что я даже теперь употребляю их слова:
- красивое
- вау
- симпатично
- ой

и другая херь
Самое страшное, что может случиться - стану пи-да-ра-сом! Е! (с) Шнур

.. вот что-то Ленинград вспомнился...

Добавлено через 4 минуты
Originally Posted by ВедхийТип:
кароче, я уверен, что препод даст заднюю, применит, что мол вот только ты у нас такой умный, а остальные дебилы, которые долбятся головой в стену - не поймут, так незя, нееее.
Советский союз же.



Originally Posted by Anquiatus:
оператор :=


Добавлено через 2 минуты
В целом, дельфи и борланд с++ - нормальные языки с приятными на ощупь VCL компонентами. Версии 5-6. Не выше. Все что было высрано индусскими конторами после продажи борландовского бренда - вызывает отторжение.

Добавлено через 26 минут
http://www.sql.ru/forum/actualthread...tid=191740&hl=

Quote:
из базы все равно будут прочитаны все...
пи3дец же...

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Last edited by Leledinn; 19.04.2011 at 07:59. Reason: Добавлено сообщение
Old 19.04.2011, 12:47
6yPaH_renamed_42596_20062025's Avatar
Привет из прошлого
Join Date:
06.04.2006
Зомби мутанта Просветитель
Issue reason: За развитие раздела Destroyer
Re: ADO.Net + C#
Что это такое и зачем оно нужно в гостиной?
Old 19.04.2011, 14:10
Leledinn's Avatar
Забаней
Join Date:
08.09.2005
Re: ADO.Net + C#
Originally Posted by 6yPaH:
Что это такое и зачем оно нужно в гостиной?
ТЫ не в курсе?

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Old 19.04.2011, 14:47
Re: ADO.Net + C#
Originally Posted by ВедхийТип:
покамест еще жива память о моем периоде джуниора, могу написать целый трактак как люди не становятся программистами и как становятся.
Было бы интересно почитать
Old 19.04.2011, 17:04
Re: ADO.Net + C#
Пользуясь случаем:

Ищем эксперта в штаб-квартиру БЕ СНГ, отдел развития веб-приложений.

Должностные обязанности:

Разработка программного кода на языке С#, для решения поставленной задачи
Верстка HTML-макетов на основе предоставленного дизайна
Написание инструкции администратора по установке и эксплуатации разрабатываемого программного продукта и другой необходимой документации
Участие в проектах с целью анализа требований к ИТ-продуктам, определения их влияния на существующие ИТ-системы, предложения оптимальных ИТ-решений на инициативы
Принятие решений в рамках поставленных задач и ответственность за них
Архитектурный и технический анализ запросов на изменение в ИТ

Требования:
Обязательные:
Высшее образование.
Знание технологий, лучших отраслевых практик и опыт разработки информационных систем, имеющих веб-интерфейс
Навыки работы в команде, совместной работы с внешними разработчиками
Опыт работы в данном направлении не менее 3 лет
Знание HTML, xHTML, CSS
Знание JavaScript/JSON
Знание XML/XSL/XPath
Опыт кроссбраузерной отладки приложений
Базовые знания ASP.NET
Приветствуется:
Знание и опыт использования в проектах ActionScript - плюс
Знание и опыт работы с шаблонами проектирования
Знание .Net Framework 1.1, 2.0, 3.5
Знание T-SQL, ADO.NET - плюс
Знание C# - плюс
Понимание и знание UML
Иметь представление о технологии SOA
Знание и опыт работы с системами контроля версий - VSS, Subversion, Git - плюс
Знание и умение писать unit-тесты, интеграционные тесты, понимание принципов TDD и BDD - приветствуется.

Остальное в личку :)
Рекомендации приветствуются!

Old 19.04.2011, 18:02
Re: ADO.Net + C#
Originally Posted by HoneyBoney:
в штаб-квартиру БЕ СНГ
Что за БЕ?
Old 19.04.2011, 18:14
Re: ADO.Net + C#
Бизнес-единица СНГ.

Old 19.04.2011, 18:15
Soulcheg's Avatar
Мизантроп
Join Date:
13.03.2007
Волшебник GoHa.Ru - 10 лет Просветитель
Issue reason: За развитие раздела "Single & Multiplayer"
Re: ADO.Net + C#
Все такие успешные, а я простой работяга. Пойду покомплексую немного.

Old 19.04.2011, 18:29
Re: ADO.Net + C#
Только не долго, нужно определяться с датами.

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off