Для входа на форум нажмите здесь
Новые комментарии
Computer programming
Автор темы: Aft3rmath_renamed_580476_10042022
Дата создания: 18.04.2011 10:58
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Код java, но не суть важно. Важен принцип и смысл паттерна DAO.

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

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

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

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

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




Код:
@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...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Re: ADO.Net + C#
я нихуя не понимаю
мне конечно жалко будет выкидывать свои датасеты, на локализацию тупых ошибок которых я потратил все выходные (типа ошибки параллелизма, затронуто 0 из 1 возможной записи, убил 7 часов на то, чтобы понять, что не выбрал селектом АктерID, по которому шло условие WHERE :D) , но если альтернатива с применением датаадаптеров и этих встречающихся на практике ваших компонентов займет в написании и понимании часа 3-4, то я с радостью

Добавлено через 1 минуту
Сообщение от ВедхийТип:
передай автору. что авторитетные пацаны с форума линейки сказали, что он лох.
так то я гнул на кадмусе, в потом ботил на новый комп и ноут 8( а кто что сказал?
Последний раз редактировалось Aft3rmath_renamed_580476_10042022; 18.04.2011 в 21:30. Причина: Добавлено сообщение
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Сообщение от Aft3rmath:
тема курсача - адаптеры
Это печально. Я думал, что главное - решить задачу.

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

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

Аватар для ВедхийТип
Предводитель
Регистрация:
28.09.2007
Re: ADO.Net + C#
Сообщение от Aft3rmath:
так то я гнул на кадмусе, в потом ботил на новый комп и ноут 8( а кто что сказал?
я имел введу препода..... исправил
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Сообщение от 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...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Последний раз редактировалось Leledinn; 18.04.2011 в 21:39. Причина: Добавлено сообщение
Re: ADO.Net + C#
аа, препод лох, а то мне уже обидно стало
спасибо всем, буду пробовать ща с пушком, о резах отпишу)
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Сообщение от Aft3rmath:
аа, препод лох, а то мне уже обидно стало
Скорее всего, у него определенная образовательная программа. Всмето того ,чтобы его лохом обзывать - задайте ему вопрос на семинаре/лекции. Вот если он категорически откажется отвечать на него - тогда лох. Если же пообещает разобраться сам и объяснить вам или обсудить - тогда ловите момент. Нормальный преподаватель ,видя заинтересованность студента, как правило идет навстречу.

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

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

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

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

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

и уже второй раз вспоминаю афоризм: "Языки в которых есть оператор := - обречены".
Аватар для ВедхийТип
Предводитель
Регистрация:
28.09.2007
Re: ADO.Net + C#
Сообщение от Leledinn:
Всмето того ,чтобы его лохом обзывать - задайте ему вопрос на семинаре/лекции.
Когда я спрашивал у своего препода, почему мы не изучали патерны, когда проходили шарп, он сказал, что большинство бы не поняло о чем речь. Я на это смотрел с изумлением, потому что без этого программирования вообще нет. Я вообще после окончания уже когда читал книгу по патернам ооп - это было как откровение: какого черта я делал в академии? почему я там не изучал это? ведь ради этого и задумывалась вся эта карусель с обьектами...

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

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

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

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

Whereas
'5' - 3 gives 2




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

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

Аватар для ВедхийТип
Предводитель
Регистрация:
28.09.2007
Re: ADO.Net + C#
эх, другие люди, другой опыт

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

я учился.

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



з.ы. ладно. делайте как считаете нужным.
Re: ADO.Net + C#
Сообщение от ВедхийТип:
эх, другие люди, другой опыт

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

я учился.

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



з.ы. ладно. делайте как считаете нужным.
я не пропустил мимо ушей ни 1 замечания из этой темы, просто не вижу смысла судорожно именно сейчас осваивать новые вещи и пытаться сделать курсовую сродни коммерческому проекту
но учиться тем вещах, о которых вы говорите, естественно придется
Аватар для SoftEx
SoftEx
Guest
Re: ADO.Net + C#
Сообщение от ВедхийТип:
з.ы. еще пара таких месяцев как этот и я веб дизайнер мле... я не хочу быть веб дизайнером.... .
это ужасно. Всегда стараюсь открещиваться по максимуму от javascript, он мне совершенно не импонирует как язык.
Аватар для ВедхийТип
Предводитель
Регистрация:
28.09.2007
Re: ADO.Net + C#
Сообщение от Aft3rmath:
я не пропустил мимо ушей ни 1 замечания из этой темы, просто не вижу смысла судорожно именно сейчас осваивать новые вещи и пытаться сделать курсовую сродни коммерческому проекту
но учиться тем вещах, о которых вы говорите, естественно придется
тяжело в учебе - легко на работе.

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

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

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

удачи. ;)

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

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

ппц

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

и другая херь
Последний раз редактировалось ВедхийТип; 18.04.2011 в 23:58. Причина: Добавлено сообщение
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Сообщение от ВедхийТип:
самое плохое - это что я даже теперь употребляю их слова:
- красивое
- вау
- симпатично
- ой

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

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

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



Сообщение от Anquiatus:
оператор :=


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

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

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

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Последний раз редактировалось Leledinn; 19.04.2011 в 07:59. Причина: Добавлено сообщение
Аватар для 6yPaH_renamed_42596_20062025
Привет из прошлого
Регистрация:
06.04.2006
Зомби мутанта Просветитель
Награжден за: За развитие раздела Destroyer
Re: ADO.Net + C#
Что это такое и зачем оно нужно в гостиной?
Аватар для Leledinn
Забаней
Регистрация:
08.09.2005
Re: ADO.Net + C#
Сообщение от 6yPaH:
Что это такое и зачем оно нужно в гостиной?
ТЫ не в курсе?

Пропаганда нацелена на удобрение дерева, на котором растет плод нашего воображения. (с)
При каждом пробитии дна открываются новые горизонты развития. (народная мудрость)
...зато рыночек, джинсы, жвачка, колбаса и можно заграницу ездить без отчета коммисару в райком.. oh, wait...
Цель капитализма всегда одна: Эксплуатация. Гнет. Война. Чтоб народных масс нищета и гибель ему несли максимальную прибыль!
Аватар для Adelor_renamed_48291_20122020
Гуру
Регистрация:
06.06.2006
Признанный автор
Награжден за: За интересные статьи по Age of Conan Просветитель
Награжден за: За помощь в развитии раздела Age of Conan
Re: ADO.Net + C#
Сообщение от ВедхийТип:
покамест еще жива память о моем периоде джуниора, могу написать целый трактак как люди не становятся программистами и как становятся.
Было бы интересно почитать
Аватар для HoneyBoney_renamed_601020_23112020
Знаток
Регистрация:
19.03.2008
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 - приветствуется.

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

Аватар для san_nsk_renamed_63258_22022020
Читатель
Регистрация:
17.11.2006
Re: ADO.Net + C#
Сообщение от HoneyBoney:
в штаб-квартиру БЕ СНГ
Что за БЕ?
Аватар для HoneyBoney_renamed_601020_23112020
Знаток
Регистрация:
19.03.2008
Re: ADO.Net + C#
Бизнес-единица СНГ.

Аватар для Soulcheg
Мизантроп
Регистрация:
13.03.2007
Волшебник Просветитель
Награжден за: За развитие раздела "Single & Multiplayer"
Re: ADO.Net + C#
Все такие успешные, а я простой работяга. Пойду покомплексую немного.

Аватар для HoneyBoney_renamed_601020_23112020
Знаток
Регистрация:
19.03.2008
Re: ADO.Net + C#
Только не долго, нужно определяться с датами.

Ваши права в разделе