Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 128

Проблемы с сохранением данных через Servlet+Hibernate

22.11.2018, 21:26. Показов 2457. Ответов 2

Студворк — интернет-сервис помощи студентам
Пишу небольшое приложение с сервлетами при поддержке hibernate. База PosgreSQL.
На стороне клиента веб-страница с двумя полями ввода и кнопкой, при нажатии на которую данные, введенные в поля, через ORM должны сохраняться в базу.
Как и задумано, данные вводятся в поля и сохраняются в таблицу. Но после повторного ввода данных новые данные замещают те, что были введены до этого. И в итоге остается только одна строка с новыми данными, а предыдущая исчезает...

Модель данных
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@Entity
@Table(name="pushmaster")
public class Pushdata {
 
    @Id
    @SequenceGenerator(name = "pushmaster_id_seq",
    sequenceName = "pushmaster_id_seq",
    allocationSize = 50)
    @GeneratedValue (strategy = GenerationType.SEQUENCE,
    generator = "pushmaster_id_seq")
    @Column(name="id", unique = true)
    public int id;
 
    private String title;
    private String content;
 
    public Pushdata (){
 
    }
 
    public Pushdata (String title, String content){
        this.title=title;
        this.content=content;
    }
 
    @Column(name = "title")
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String title) {
        this.title = title;
    }
 
    @Column(name = "content")
    public String getContent() {
        return content;
    }
 
    public void setContent(String content) {
        this.content = content;
    }
 
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }}
Фактория сессии

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
public class FactoryClass {
 
    SessionFactory sessionFactory;
 
    public FactoryClass() {
    }
 
    public SessionFactory getSessionFactory() {
        if (sessionFactory == null) {
            try {
                Configuration configuration = new Configuration().configure();
                configuration.addAnnotatedClass(Pushdata.class);
 
                StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().
                        applySettings(configuration.getProperties());
                sessionFactory = configuration.buildSessionFactory(builder.build());
 
            } catch (HibernateException exception) {
                System.out.println("Problem creating session factory");
                exception.printStackTrace();
            }
        }
        return sessionFactory;
    }
}
Конфигурация
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<hibernate-configuration>
    <session-factory>
 
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
 
 
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/</property>
 
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">password</property>
 
        <property name="connection_pool_size">1</property>
 
        <property name="hbm2ddl.auto">create</property>
 
        <property name="hibernate.connection.autocommit">true</property>
 
        <property name="show_sql">true</property>
 
 
    </session-factory>
</hibernate-configuration>
ДАО

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserDAO {
 
    FactoryClass factoryClass = new FactoryClass();
 
    public void save(Pushdata pushdata) {
        Session session = factoryClass.getSessionFactory().openSession();
        Transaction tx1 = session.beginTransaction();
        session.save(pushdata);
        session.flush();
        tx1.commit();
        session.close();
    }
}
прописано сохранение

Java
1
2
3
4
5
6
7
8
9
10
public class PushModifier {
 
    UserDAO userDAO = new UserDAO();
 
    public PushModifier() {}
 
    public void savePushdata(Pushdata pushdata) {
        userDAO.save(pushdata);
    }
}
Сервлет

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
@WebServlet("/")
public class PushNewsServlet extends HttpServlet {
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        //Классы базы
        UserDAO userDAO = new UserDAO();
        PushModifier pushModifier = new PushModifier();
 
        //Запись в базу
        if (request.getParameter("putInApp") != null) {
 
            Pushdata pushdata = new Pushdata();
 
            //Получение параметров в базу с запросом
            pushdata.setTitle(request.getParameter("title"));
            pushdata.setContent(request.getParameter("content"));
 
            pushModifier.savePushdata(pushdata);
 
            RequestDispatcher requestDispatcher = request.
                    getRequestDispatcher("/pushWebPage.jsp");
            requestDispatcher.forward(request, response);
 
        }
 
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2018, 21:26
Ответы с готовыми решениями:

Проблемы с Hibernate через анотации
Всем доброй ночи! Помогите пож. , выручте не могу заполнить таблицу в Java, поключена библиотеки JAVA-Hibernate, MySQL при заполнении...

Проблемы с сохранением данных в БД Access
Программа данные с базы вытягивает,а от при заполнении не сохраняет.Цель добавить запрос на путевку!

Странное поведение Hibernate в Servlet
Прошу помощи о хибернейт. Есть 3 класса Connect , Main, HelloServlert. В классе Connect всё для работы с хибернейт... Класс...

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.11.2018, 21:44
Лучший ответ Сообщение было отмечено iSmokeJC как решение

Решение

...

Добавлено через 3 минуты
Цитата Сообщение от Андрей1981 Посмотреть сообщение
<property name="hbm2ddl.auto">create</property>
После первого запуска (создание таблицы), поменяй на
<property name="hbm2ddl.auto">update</property>

Добавлено через 37 секунд
Или вообще none...
1
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 128
22.11.2018, 23:39  [ТС]
Спасибо, сработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2018, 23:39
Помогаю со студенческими работами здесь

Servlet Hibernate (SessionFactory) ошибка
Есть файл HibernateUtils package DB.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import...

Intellij idea не может скачать зависимость javax.servlet.servlet:servlet-api:3.0.1
intellij idea не может скачать зависимость javax.servlet.servlet:servlet-api:3.0.1 Идет загрузка, потом пропадает, но зависимость...

Проблемы с сохранением
В Word 2003 sp3 при работе в документе ошибок не возникает, но при попытке сохранить, возникает ошибка доступа к файлу, нажимаю сохранить...

Фотошоп CS 5, проблемы с сохранением
Вот проблема: я пытаюсь сохранить файл в фотошопе, чтобы в дальнейшем загрузить его на какой-либо сайт, однако почему-то вместо 80 кб, этот...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru