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

Struts and Hibernate ошибка: Configuration problem: Could not execute JDBC batch update

18.06.2012, 03:24. Показов 5454. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
public class LoginLogic{
 
private Configuration cfg;
private SessionFactory sf;
 
public LoginLogic(){
try {
cfg = new Configuration().addClass(User.class);
sf = cfg.buildSessionFactory();
} catch (HibernateException e) {
e.printStackTrace();
}
}
 
public boolean addUsr(String login,String password){
try {
 
Session s = sf.openSession();
Transaction t = s.beginTransaction();
 
List lst = s.find("select login from test.hib.User as us join us.login as login "+
"where us.login = ?",login, Hibernate.STRING);
 
if(lst.size()!=0)
return false;
 
User u = new User();
u.setLogin(login);
u.setPassword(password);
 
s.saveOrUpdate(u);
t.commit();
s.close();
 
} catch (HibernateException e) {
throw new RuntimeException("Configuration problem: " + e.getMessage(), e);
}
 
return true;
}
в RegisterAction унаследованном от Action,я вызываю метод addUsr.
в struts-config.xml
XML
1
2
3
4
5
6
7
8
 
        <action path="/RegistrationSubmit"
            name="registerForm"
            type="test.app.RegisterAction"
            validate="true"
            input="/pages/addUsr.jsp 
         <forward name="success_registration" path="/pages/successAdd.jsp"/>
         </action>
1-ый раз работает все нормально и в базу данных добавляется одна запись, но если я в урл набираю еще раз http://localhost:8080/Ex/pages/addUsr.jsp и заполняю форму и нажимаю сабмит
HTML5
1
2
3
4
<html:form action="/RegistrationSubmit.do 
...
<html:submit/>
</html:form>
то вылетает след.ошибка
java.lang.RuntimeException: Configuration problem: Could not execute JDBC batch update
Может кто-нибудь знает в чем дело и как избежать этой ошибки ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2012, 03:24
Ответы с готовыми решениями:

Начинаем изучать Hibernate, Struts и Spring
Цель: изучить Hibernate, Struts и Spring. Вопросы: Какие знания необходимы/желательны для начала изучения? В какой...

Hibernate operation: could not execute statement
Доброго времени суток! Помогите, пожалуйста, разобраться с ошибкой которая возникает на сайте: Hibernate operation: could not execute...

Hibernate - получение информации о маппинге из Configuration (SessionFactory)
Есть Configuration (или созданный по нему SessionFactory), инциализированный валидным маппингом. Задача состоит в том, чтобы получить имена...

7
mishgun
18.06.2012, 19:18
U vas sessiys escho otkryta potomu chto vy nepravilno ee zakrivaete

Vot primer kak rabotat s session(da i s obiknovennim jdbc takzhe BTW)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Session sess = factory.openSession();
 Transaction tx;
 try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
 }
 catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
 }
 finally {
     sess.close();
 }
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 20
19.06.2012, 00:26  [ТС]
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
52
53
54
55
56
57
public class LoginAction extends Action{
    private Session sess;
    private SessionFactory sf;
    private Transaction tx;
 
    public LoginAction(){
      try {
        sf = new Configuration().addClass(User.class).buildSessionFactory();
      } catch (HibernateException e) { e.printStackTrace();}
    }
 
    public ActionForward perform(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
    throws IOException, ServletException {
 
    HttpSession session = request.getSession();    
 
    try{
    User u = new User();
    u.setLogin(((RegisterForm)form).getLogin());
    u.setPassword(((RegisterForm)form).getPassword());
 
    sess = sf.openSession();
    tx = sess.beginTransaction();
    sess.save(u);
    tx.commit();
 
    }catch(HibernateException ex ){
       if(tx != null)
           try {
               tx.rollback();
           } catch (HibernateException e) {
               e.printStackTrace();
           }
        throw new RuntimeException("Configuration problem: " + ex.getMessage(), ex);
    }
    finally{
        try {
            sess.close();
        } catch (HibernateException e) {
            e.printStackTrace();
        }
    }
 
        if (mapping.getAttribute() != null) {
                    if ("request".equals(mapping.getScope()))
                        request.removeAttribute(mapping.getAttribute());
                    else
                        session.removeAttribute(mapping.getAttribute());
        }
 
 
    return mapping.findForward("success");
    }
}
Уважаемый mishgun переписал код!!! Ситуация такая : на странице я ввожу, данные пользователя(в данном случае логин и пароль),нажимаю на сабмит, данные успешно добавляются в базу данных, затем в Internet Explorer нажимаю "Назад" , и опять ввожу логин и пароль, после этого нажимаю на сабмит и ...
java.lang.RuntimeException: Configuration problem: Could not execute JDBC batch update
test.com.LoginAction.perform(LoginAction .java:51)
org.apache.struts.action.ActionServlet.p rocessActionPerform(ActionServlet.java:1 787)
org.apache.struts.action.ActionServlet.p rocess(ActionServlet.java:1586)
org.apache.struts.action.ActionServlet.d oPost(ActionServlet.java:510)
javax.servlet.http.HttpServlet.service(H ttpServlet.java:709)
javax.servlet.http.HttpServlet.service(H ttpServlet.java:802)
0
mishgun
19.06.2012, 03:01
Ya nichego ne perepisival
esli hotitte pomoshi to vbikladivauyte normalniy kod.POsmotrite sami chto
vi vilozhili v 1-m poste.

Vtoroe smeshivat logiku i rabotu s bazoy - samoe poslednee delo
sozdayte otdelniy class v kotorom budete rabotat s bazoy i uvidite kak vam budet horosho
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 20
19.06.2012, 03:54  [ТС]
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
public class LoginAction extends Action{
    private Session sess;
 
    public ActionForward perform(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
    throws IOException, ServletException {
 
    HttpSession session = request.getSession();
 
    try{
    User u = new User();
    u.setLogin(((LoginForm)form).getLogin());
    u.setPassword(((LoginForm)form).getPassword());
 
    sess = HibernateUtil.currentSession();
    HibernateUtil.beginTransaction();
    sess.save(u);
    HibernateUtil.commitTransaction();
    HibernateUtil.closeSession();
 
    }catch(HibernateException ex ){
        throw new RuntimeException("Configuration problem: " + ex.getMessage(), ex);
    }
    finally{
        try {
            sess.close();
        } catch (HibernateException e) {
            e.printStackTrace();
        }
    }
 
        if (mapping.getAttribute() != null) {
                    if ("request".equals(mapping.getScope()))
                        request.removeAttribute(mapping.getAttribute());
                    else
                        session.removeAttribute(mapping.getAttribute());
        }
 
 
    return mapping.findForward("success");
    }
}
//////////////////////////////////////////////////////////////////////////////

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
52
53
54
55
public class HibernateUtil {
 
    private static final SessionFactory sessionFactory;
    private static final ThreadLocal session = new ThreadLocal();
    public static final ThreadLocal transaction = new ThreadLocal();
 
    static {
        try {
        sessionFactory =new Configuration().addClass(test.com.User.class).buildSessionFactory();
       } catch (HibernateException ex) {
    throw new RuntimeException("Configuration problem: " + ex.getMessage(), ex);
    }
    }
 
    public static Session currentSession()throws HibernateException  {
      Session s = (Session) session.get();
      if (s == null) {
      s = sessionFactory.openSession();
      session.set(s);
      }
    return s;
    }
 
    public static void closeSession()throws HibernateException  {
    Session s = (Session) session.get();
    if (s != null)
    s.close();
    session.set(null);
    }
 
 
    public static void beginTransaction() {
            Transaction tx = (Transaction) transaction.get();
            try {
                if (tx == null) {
                    tx = currentSession().beginTransaction();
                    transaction.set(tx);
                }
            } catch (HibernateException e) {
             throw new RuntimeException("Transakation err "+e.getMessage());
            }
        }
 
    public static void commitTransaction() throws HibernateException {
            Transaction tx = (Transaction) transaction.get();
            try {
                if (tx != null) {
                    tx.commit();
                }
                transaction.set(null);
            } catch (HibernateException e) {
                tx.rollback();
            }
        }
}
//////////////////////////////////////////////////////////////////////////////

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd 
<struts-config>
    <form-beans>
        <form-bean name="MyLoginForm" type="test.com.LoginForm"/>
    </form-beans>
 
    <action-mappings>
        <action path="/loginTest"
                type="test.com.LoginAction"
                name="MyLoginForm 
         <forward name="success" path="/success.jsp"/>
         <forward name="failure" path="/failure.jsp"/>
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
22.06.2012, 15:47
Топик просмотрел по диагонали.
Насторожила вот эта твоя строчка
>> Причем второй раз страница success.jsp грузится гораздо быстрее.
Подозреваю что грабли могут быть из за того что браузер кеширует страничку. Кстати довольно часто из за этого могут быть проблемы.
Запрети кеширование.
0
0 / 0 / 4
Регистрация: 14.08.2007
Сообщений: 307
22.06.2012, 15:56
Запретить кеширование можно, например, фильтром.
Код фильтра примерно такой:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public void doFilter(
            ServletRequest request,
            ServletResponse response,
            FilterChain chain)
                throws IOException, ServletException {
        //
        HttpServletResponse httpResponse =
                (HttpServletResponse) response;
        httpResponse.setHeader("Cache-Control","no-cache");
        httpResponse.setHeader("Pragma","no-cache");
        httpResponse.setDateHeader ("Expires", 0);
        //
        chain.doFilter(request, response);
    }
Регистрируешь фильтр в web.xml и прописываешь примерно такой меппинг:
XML
1
2
3
4
5
6
7
8
    <filter-mapping>
        <filter-name>
        setResponseHeadersFilter
        </filter-name>
        <url-pattern>
        *.do
        </url-pattern>
    </filter-mapping>
0
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 20
23.06.2012, 02:33  [ТС]
пасибо scroodge за потраченное время!Но проблема все-таки осталась. Может нужно отключать какой-нибудь кэш в hibernate?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2012, 02:33
Помогаю со студенческими работами здесь

ProgressBar update problem
Здрасте. Возникла проблема из ProgressBar'ом. Выбираю .xls или .csv через File Dialog, читаю построчно, записываю в DataGrid, формулой...

jdbc update не экранируется
Здравствуйте! Есть такая команда String sql = &quot;UPDATE catalogs SET name = '&quot; + name + &quot;' WHERE name = '&quot; + s + &quot;'&quot;; ...

Не работает Conn.Execute(); для SQL-команды UPDATE
Помогите пожалуйста, почему-то не срабатывает команда: sql='UPDATE counters_value SET p_value='+numb+' WHERE counter_id='+a1; ...

DataEnvironment.Connection.Execute ('update tbl set code=12345 where id=5') не срабатывает
DataEnvironment.Connection.Execute ('update tbl set code=12345 where id=5') Ребята ну я не могу понять почему не Updat - ит

Hibernate HQL UPDATE
Вобщем работает ли (HQL): UPDATE Table(column1,column2) SELECT column1,column2 FROM Users WHERE KeyColumn=5 Вобщем...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru