Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись данных в бд из jsf 
:(
    Опции темы
Zamuta
Дата 21.11.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Привет всем.

Решил повторить написанное на lib.juga.ru в статье введение в jsf. Вообще,  всё работает кроме самой записи в бд. БД MySQL 5. Параметры соединения хранятся в web.xml, jdbc драйвер использую скаченный с их сайта mysql-connector-java-5.0.4-bin.jar. Заранее таблицу создал.  Работаю в NetBeans 5.5. При правильной записи данных должна открываться страница с подтверждением успешного выполнения, а в обратном случае с неудачей, у меня как раз и открывается с неудачей. Непонятно.

Вот код:

GuestBean.java

Код


package regform;

import javax.faces.*;
import com.sun.jsfcl.app.*;
import javax.faces.component.html.*;
import javax.faces.context.*;
import java.sql.*; 
import com.sun.sql.rowset.*;
import java.util.regex.*;
import javax.servlet.*;

public class GuestBean extends FacesBean
{   
    private final String DRIVER_CLASS;
    private final String DB_HOST;
    private final String DB_USER;
    private final String DB_PASSWORD;    
                
    private HtmlForm frmGuest = new HtmlForm();
    public HtmlForm getFrmGuest()      {return frmGuest;}
    public void setFrmGuest(HtmlForm value)    {frmGuest = value;}
    
    private String name;
    public String getName() {return name;}    
    public void setName(String value)   {name = value;}    
    
    private String mail;
    public String getMail() {return mail;}    
    public void setMail(String value)   {mail = value;}    
    
    private String message;
    public String getMessage() {return message;}    
    public void setMessage(String value)   {message = value;}
    
    private String nameError = "";
    public String getNameError() {return nameError;}
    
    private String mailError = "";
    public String getMailError() {return mailError;}
    
    private String messageError = "";
    public String getMessageError() {return messageError;}
    
    private JdbcRowSetXImpl rowset;
    public JdbcRowSetXImpl getRowSet() {return rowset;}    
    public void setRowSet(JdbcRowSetXImpl value){rowset = value;}
   

    public GuestBean()
    {

        DRIVER_CLASS = this.getExternalContext().getInitParameter("driver_class");
  DB_HOST = this.getExternalContext().getInitParameter("db_host");
  DB_USER = this.getExternalContext().getInitParameter("db_user");
  DB_PASSWORD = this.getExternalContext().getInitParameter("db_password");
       

        rowset = getDataSource();
    } 
    

    private JdbcRowSetXImpl getDataSource()
    {
        try
        {
            Class.forName(DRIVER_CLASS).newInstance();
            JdbcRowSetXImpl jrs = new JdbcRowSetXImpl();
            jrs.setCommand("SELECT TOP 10 * FROM tblguest ORDER BY date DESC;");
            jrs.setUrl(DB_HOST);        
            jrs.setUsername(DB_USER);
            jrs.setPassword(DB_PASSWORD);
            jrs.execute();
            return jrs;        
        }
        catch(Exception e)
        {
            return null;
        }
    }    
   

    public String onClick()
    {        
        if(!validate())
            return "";
        
        boolean result = saveToDatabase();
        

        if(result)
            return "success";
        else
            return "failure";
    }
    
    private boolean validate()
    {

        
        boolean result = true;
        if(name.equals(""))
        {
            nameError = "Enter your name, please";
            result = false;
        }
        

        Pattern p = Pattern.compile("^[a-zA-Z0-9]+[@][a-z]+[.][a-z]{2,3}");
        Matcher m = p.matcher(mail);
        if(!m.matches())
        {
            mailError = "Enter your e-mail, please";
            mail = "";
            result = false;
        }
        
        if(message.equals(""))    
        {
            messageError = "Enter your message, please";
            result = false;
        }
        
        return result;
    }

    private boolean saveToDatabase()
    {
        try
        {        
            Class.forName(DRIVER_CLASS).newInstance();
            Connection con = DriverManager.getConnection(DB_HOST, DB_USER, DB_PASSWORD);
            Statement statement = con.createStatement();           
            statement.execute("INSERT INTO tblguest (name, mail, message) VALUES ('"+name+"', '"+mail+"', '"+message+"');");
        }
        catch(Exception e)
        {
            return false;
        }
        
        name = "";
        mail = "";
        message = "";
        
        return true;
    }
}




index.jsp

Код


<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
    <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
    <f:view>
        <ui:page binding="#{index.page1}" id="page1">
            <ui:html binding="#{index.html1}" id="html1">
                <ui:head binding="#{index.head1}" id="head1">
                    <ui:link binding="#{index.link1}" id="link1" url="/resources/stylesheet.css"/>
                </ui:head>
                <ui:body binding="#{index.body1}" id="body1" style="background-color: rgb(153, 153, 0); -rave-layout: grid">
                    <ui:form binding="#{index.frmGuest}" id="frmGuest">
                        <ui:staticText binding="#{index.staticText1}" id="staticText1"
                            style="height: 24px; left: 48px; top: 48px; position: absolute; width: 46px" text="NAME:"/>
                        <ui:staticText binding="#{index.staticText2}" id="staticText2"
                            style="height: 24px; left: 48px; top: 96px; position: absolute; width: 46px" text="E-MAIL:"/>
                        <ui:staticText binding="#{index.staticText3}" id="staticText3"
                            style="height: 24px; left: 48px; top: 144px; position: absolute; width: 70px" text="MESSAGE:"/>
                        <h:inputText binding="#{index.txtName}" id="txtName" style="position: absolute; left: 144px; top: 48px; width: 144px; height: 24px" value="#{GuestBean.name}"/>
                        <h:inputText binding="#{index.txtMail}" id="txtMail" style="position: absolute; left: 144px; top: 96px; width: 144px; height: 24px" value="#{GuestBean.mail}"/>
                        <h:inputTextarea binding="#{index.txtMessage}" id="txtMessage"
                            style="position: absolute; left: 48px; top: 192px; width: 240px; height: 144px" value="#{GuestBean.message}"/>
                        <h:commandButton action="#{GuestBean.onClick}" binding="#{index.btnSend}" id="btnSend"
                            style="position: absolute; left: 48px; top: 360px; width: 240px; height: 24px" value="SEND"/>
                        <h:outputText binding="#{index.txtNameError1}" id="txtNameError1"
                            style="color: red; height: 24px; left: 312px; top: 48px; position: absolute; width: 264px" value="#{GuestBean.nameError}"/>
                        <h:outputText binding="#{index.txtMailError}" id="txtMailError"
                            style="color: red; height: 24px; left: 312px; top: 96px; position: absolute; width: 264px" value="#{GuestBean.mailError}"/>
                        <h:outputText binding="#{index.txtMessageError}" id="txtMessageError"
                            style="color: red; height: 24px; left: 312px; top: 192px; position: absolute; width: 264px" value="#{GuestBean.messageError}"/>
                    </ui:form>
                </ui:body>
            </ui:html>
        </ui:page>
    </f:view>
</jsp:root>




navigation.xml

Код

<faces-config>
    <navigation-rule>
        <from-view-id>/index.jsp</from-view-id>
        <navigation-case>
            <from-action>#{GuestBean.onClick}</from-action>
            <from-outcome>success</from-outcome>
            <to-view-id>/ok.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-action>#{GuestBean.onClick}</from-action>
            <from-outcome>failure</from-outcome>
            <to-view-id>/error.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>




managed-beans.xml

Код

<faces-config>
    <managed-bean>
        <managed-bean-name>SessionBean1</managed-bean-name>
        <managed-bean-class>regform.SessionBean1</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>index</managed-bean-name>
        <managed-bean-class>regform.index</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>ApplicationBean1</managed-bean-name>
        <managed-bean-class>regform.ApplicationBean1</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>RequestBean1</managed-bean-name>
        <managed-bean-class>regform.RequestBean1</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>ok</managed-bean-name>
        <managed-bean-class>regform.ok</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>error</managed-bean-name>
        <managed-bean-class>regform.error</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>GuestBean</managed-bean-name>
        <managed-bean-class>regform.GuestBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
</faces-config>



web.xml

Код


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/navigation.xml,/WEB-INF/managed-beans.xml</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
    <context-param>
        <param-name>db_host</param-name>
        <param-value>jdbc:mysql://localhost:3306/registration</param-value>
    </context-param>
    <context-param>
        <param-name>db_class</param-name>
        <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
    <context-param>
        <param-name>db_user</param-name>
        <param-value>root</param-value>
    </context-param>
    <context-param>
        <param-name>db_password</param-name>
        <param-value>password</param-value>
    </context-param>
    <filter>
<filter-name>UploadFilter</filter-name>
<filter-class>com.sun.rave.web.ui.util.UploadFilter</filter-class>
<init-param>
<description>
          The maximum allowed upload size in bytes.  If this is set
          to a negative value, there is no maximum.  The default
          value is 1000000.
        </description>
<param-name>maxSize</param-name>
<param-value>1000000</param-value>
</init-param>
<init-param>
<description>
          The size (in bytes) of an uploaded file which, if it is
          exceeded, will cause the file to be written directly to
          disk instead of stored in memory.  Files smaller than or
          equal to this size will be stored in memory.  The default
          value is 4096.
        </description>
<param-name>sizeThreshold</param-name>
<param-value>4096</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UploadFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<servlet-class>com.sun.errorhandler.ExceptionHandler</servlet-class>
<init-param>
<param-name>errorHost</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>errorPort</param-name>
<param-value>24444</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemeServlet</servlet-name>
<servlet-class>com.sun.rave.web.ui.theme.ThemeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<url-pattern>/error/ExceptionHandler</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemeServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
        <welcome-file>faces/index.jsp</welcome-file>
        </welcome-file-list>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>javax.faces.FacesException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>com.sun.rave.web.ui.appbase.ApplicationException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
</web-app>




--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Sherst
Дата 21.11.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 26.10.2005

Репутация: 2
Всего: 2



Посмотри что происходит в блоке Exception строка 139 - 142


Это сообщение отредактировал(а) Sherst - 21.11.2006, 18:17
PM MAIL   Вверх
Zamuta
Дата 22.11.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Сделал вот так:

Код

private boolean saveToDatabase() {
        try {
            Class.forName(DRIVER_CLASS).newInstance();
            Connection con = DriverManager.getConnection(DB_HOST, DB_USER, DB_PASSWORD);
            Statement statement = con.createStatement();
            statement.execute("INSERT INTO tblguest (name, mail, message) VALUES ('"+name+"', '"+mail+"', '"+message+"');");
        } catch(Exception e) {

            System.err.println(" error ");
            e.printStackTrace(System.err);
            return false;
            
        } 
            name = "";
            mail = "";
            message = "";
            return true;
        
        
    }


блок 

            name = "";
            mail = "";
            message = "";
            return true;

не смог заключить в эксепшн, говорит, эксепшн уже и так ловится. 

В результате в консоли получаю:

error 
java.lang.NullPointerException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at regform.GuestBean.saveToDatabase(GuestBean.java:129)
        at regform.GuestBean.onClick(GuestBean.java:91)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
        at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
        at javax.faces.component.UICommand.broadcast(UICommand.java:332)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:195)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)


Что скажите? Как блок  

            name = "";
            mail = "";
            message = "";
            return true;


заключить в эксепшн? Создать свой?




--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
tux
Дата 22.11.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Во время выполнения вот этой строки
Код

Class.forName(DRIVER_CLASS).newInstance();

у тебя значение DRIVER_CLASS равно null.
PM MAIL Skype GTalk Jabber YIM   Вверх
Zamuta
Дата 23.11.2006, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Понял, спасибо.

в web.xml писал db_class, а нужно driver_class....

Затем получил сообщение о том, что id у меня в таблице не должно быть пустым, установил значение  "1" , запись прошла успешно, получил страницу success. Но при следующей попытке записи данных пишет:

error 
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 1
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
        at com.mysql.jdbc.Statement.execute(Statement.java:695)
        at regform.GuestBean.saveToDatabase(GuestBean.java:132)
        at regform.GuestBean.onClick(GuestBean.java:91)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
        at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92)
        at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
        at javax.faces.component.UICommand.broadcast(UICommand.java:332)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401)
        at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:195)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Ругается на id?

И ещё, через MySQL Administrator я не вижу полученных данных в таблице, это нормально? В бд новичок, не судите строго.....


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
tux
Дата 23.11.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Поле id - это, очевидно, первичный ключ. Значения первичных ключей должны быть уникальны, а ты пытаешься создать вторую запись со значением id=1. Настоятельно рекомендовал бы почитать про базы данных иначе сейчас подобные вопросы посыпятся как из рога изобилия.
PM MAIL Skype GTalk Jabber YIM   Вверх
Zamuta
Дата 23.11.2006, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



Спасибо за доходчивые ответы  smile .........пошёл читать.........


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Armiol
Дата 24.11.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.3.2006

Репутация: нет
Всего: нет



Еще один вариант, который значительно облегчает подобную задачу -- использовать JSF совместно со Spring и Hibernate. Это позволяет разделять бизнес-логику приложения и логику работы с базой, порой достаточно сложную.
Туториалов и статей по этой теме в сети предостаточно, взять хотя бы http://www.javaworld.com/javaworld/jw-07-2...w-0719-jsf.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0919 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.