powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / использование DAO в сервлете
22 сообщений из 22, страница 1 из 1
использование DAO в сервлете
    #39102038
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если делать веб приложение при помощи сервлетов, не используя спринг.
1)Тогда надо создавать класс PersonDAO или интерфейс PersonDAO и реализацию класс PersonDAOImpl ?
2)Методы в PersonDAO должны быть статическими? к примеру чтобы в сервлете не писать new PersonDAO (), а писать к примеру PersonDAO.add(person).
Но если делать статические методы, то не получится сделать интерфейс со статическими методами.

Как тогда нужно реализовывать ?
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102054
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAO немного устаревший паттерн. Так как с ORM нахрен не надо писать разные методы для разных типов. Поэтому на смену DAO приходит Repository.
Статические методы, в целом, ни к чему хорошему не приводят.
Ваш вопрос "Как тогда нужно реализовывать?" приводит к тому что вы понятия не имеете что такое жизненый цикл объектов. Spring IoC именно этим и занимается. Отказавшись от него вы хотите то же самое, но без Spring. Можете использовать JEE CDI.

Определитесь со стеком технологий и найдите в интернете пример их использования вместе. Pet Store какой-нибудь.

Когда мне хочется чего-нибудь lightweight без Spring, я просто пишу отдельный класс, который делает все инъекции. Эдакий IoC DI контейнер. Но дружить его с сервлетами не очень удобно, потому что сервлеты это не POJO.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102063
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkКак тогда нужно реализовывать ?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
package dao;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Customer {
	@Id
	@Column(name = "id")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;
	@Column(nullable = false)
	private String Name;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}
}


в сервлете
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
		try {
			System.out.println("Создать класс-запись в БД");
			Main u = new Main();
			u.setPassword("abc123");
			session.saveOrUpdate(u);
			System.out.println("Сохранили в БД класс без коммита");
		} finally {
			HibernateUtil.commitTransaction();
			System.out.println("Коммит прошёл. Всё");
		}
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102076
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Entity это не DAO.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102084
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczEntity это не DAO.
не будем уточнять формулировки.
Согласись что 1-ый класс вторая четверть ОРМа начинается с этого.
А про второй класс аффтар вроде и не спрашивает.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102086
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
ну, то есть ещё проще для понимания основ в Java у меня не вышло))) LOL
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102115
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно на сервлетах реализовать взаимодействие с БД при помощи jdbc , не используя spring, hibernate.
Если я создам класс PersonDAO с методами addPerson,updatePerson,findPerson , то как мне вызывать их в севлете ?
new PersonDAO().addPerson ? иили лучше сделать статический метод addPerson , чтобы не созавать эти объекты PersonDAO ?
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102123
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkнужно на сервлетах реализовать взаимодействие с БД при помощи jdbc , не используя spring, hibernate.
Если я создам класс PersonDAO с методами addPerson,updatePerson,findPerson , то как мне вызывать их в севлете ?
new PersonDAO().addPerson ? иили лучше сделать статический метод addPerson , чтобы не созавать эти объекты PersonDAO ?

Singleton спешит на помощь.
Код: java
1.
2.
PersonDAO dao = PersonDAO.getInstance();
dao.addPerson();
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102133
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkпри помощи jdbc
а раньше молчал?)) Может тебе и классы не нужны?
Код: java
1.
update Person set возраст=16
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102157
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawk,
без хибера или другой ОРМ ты с классами на jdbc затрахаешься.
- бери DataSet или SQL
Удачи!
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102163
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123goldenhawk,
без хибера или другой ОРМ ты с классами на jdbc затрахаешься.
- бери DataSet или SQL
Удачи!
Чтобы не затрахаться с JDBC есть Apache Commons DBUtils.
Ну, и, как вариант, jOOQ/QueryDSL
Но, мысль поддерживаю. Даже на небольшом проекте в менее чем десяток таблиц я начал скучать за хибером.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102198
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
да.
Ну, и ещё вариант, если у него ангуляр и т.д.
Тогда с клиентом всё на JSON.
А с него возможно прямо UPDATE SQL и писать (тож без объектов).
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102203
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Ну, это хорошо забытое старое. К черту сервлеты! JSP наше фсё!
https://docs.oracle.com/javaee/5/tutorial/doc/bnald.html
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123,
Ну, это хорошо забытое старое. К черту сервлеты! JSP наше фсё!
https://docs.oracle.com/javaee/5/tutorial/doc/bnald.html
о да!! )))
5 баллов.
Удачи аффтару!
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39102681
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkнужно на сервлетах реализовать взаимодействие с БД при помощи jdbc
Ну как при помощи jdbc отправляете запрос к СУБД. Получаете RowSet. Пробегаетесь по нему.
Парсите. Создаете свое DAO. Ну например самое простейшее с Map values и все поля из Rowset в нем. Геттеры Сеттеры, как совесть позволяет. Ну продумываете как ключ генериться будет. Как связи с другими DAO реализовать. Кеш. Ну и операцию store. Потом про то, как транзакциями рулить. И все.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39103206
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123goldenhawk,
без хибера или другой ОРМ ты с классами на jdbc затрахаешься.
- бери DataSet или SQL
Удачи!
Чтобы не затрахаться с JDBC есть Apache Commons DBUtils.
Ну, и, как вариант, jOOQ/QueryDSL
Но, мысль поддерживаю. Даже на небольшом проекте в менее чем десяток таблиц я начал скучать за хибером.
А как на счет использования iBatis в таких случаях?
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39103373
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,
Я смотрю, у вас настолько много там недосказанного, что делать обзор всего и вся глупо. Позови программиста. Он расскажет что умеет и что хочет.
Imho
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39103493
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
у меня? Вы о чем? Я не ТС, просто предложил, что если надо делать crud и не хочется хибернейтов, а хочется писать sql самостоятельно, то iBatis это неплохой вариант.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39103512
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,
упс, извини. Думал что ты ТС....
Конечно вариант. Только ТС молчит. Вероятно тема закрыта.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39103854
detec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не использовать Spring для Dependency Injection, то нужно тогда использовать Java EE технологию CDI. Аннотация @Inject, создавать PersonDAO и т.п., инджектить его в сервисный слой. Статических методов при этом делать не нужно.
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39104309
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EJB?
...
Рейтинг: 0 / 0
использование DAO в сервлете
    #39104367
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что? Если написать на чём нибудь с буквой E_XXXXX вначале, то код выше станет меньше и проще?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / использование DAO в сервлете
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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