2013-10-20 42 views
0

嗨,大家好我已創建了一個表無法從JSF的Web應用程序添加數據到MySQL數據庫

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| mysql    | 
| performance_schema | 
| sakila    | 
| test    | 
| world    | 
+--------------------+ 
6 rows in set (0.00 sec) 

mysql> select * from user1; 
Empty set (0.00 sec) 

mysql> show tables; 
+----------------+ 
| Tables_in_test | 
+----------------+ 
| user1   | 
+----------------+ 
1 row in set (0.00 sec) 

mysql> describe user1; 
+--------------+--------------+------+-----+---------+-------+ 
| Field  | Type   | Null | Key | Default | Extra | 
+--------------+--------------+------+-----+---------+-------+ 
| userId  | bigint(10) | NO | PRI | NULL |  | 
| name   | varchar(15) | NO |  | NULL |  | 
| address  | varchar(255) | NO |  | NULL |  | 
| created_date | date   | NO |  | NULL |  | 
+--------------+--------------+------+-----+---------+-------+ 
4 rows in set (0.01 sec) 

mysql> 

的用戶名和密碼是root,端口是3306

的問題我我有嘗試使用jsf web應用程序將數據輸入到它,

我可以手動將數據添加到它在MySQL中罰款,但不能從Web應用程序中輸入任何數據,我沒有在任何錯誤控制檯或任何東西,我只是得到我的錯誤添加數據試試錯誤頁面顯示

我的管理bean是

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package richard.test; 

import javax.faces.application.FacesMessage; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 
import javax.faces.context.FacesContext; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

@ManagedBean 
@RequestScoped 
public class User { 

    private long userID; 
    private String name; 
    private String address; 
    private Date created_date; 

    public long getUserID() { 
     return userID; 
    } 

    public void setUserID(long userID) { 
     this.userID = userID; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public Date getCreated_date() { 
     return created_date; 
    } 

    public void setCreated_date(Date created_date) { 
     this.created_date = created_date; 
    } 

    public String add() { 
     SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
     int i = 0; 

     if (userID != 0) { 
      PreparedStatement ps = null; 
      Connection con = null; 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); 
       String sql = "INSERT INTO user1(userId, name, address, created_date) VALUES(?,?,?,?)"; 
       ps = con.prepareStatement(sql); 
       ps.setLong(1, userID); 
       ps.setString(2, name); 
       ps.setString(3, address); 
       if (created_date != null) { 
        String date = fmt.format(created_date); 
        Object obj = date; 
        if (obj == null) { 
         ps.setDate(4, null); 
        } else { 
         java.sql.Date dt = java.sql.Date.valueOf(new String(date)); 
         ps.setDate(4, dt); 
        } 
       } 

       i = ps.executeUpdate(); 
       System.out.println("Data Added Successfully"); 
      } catch (Exception e) { 
       System.out.println(e); 
      } finally { 
       try { 
        con.close(); 
        ps.close(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
      if (i > 0) { 
       return "output"; 
      } else { 
       return "invalid"; 
      } 
     } else { 
      return "invalid"; 
     } 
    } 
} 

,這裏是XHTML頁面

<table> 
       <tr> 
        <td> <h:messages showDetail="true" /> </td> 
       </tr> 
       <tr> 
        <td><h:outputText value="Enter Id : "/></td> 
        <td><h:inputText value="#{user.userID}"/></td> 
       </tr> 
       <tr> 
        <td><h:outputText value="Enter Name : " /></td> 
        <td><h:inputText value="#{user.name}" /></td> 
       </tr> 
       <tr> 
        <td><h:outputText value="Enter your address : "/></td> 
        <td><h:inputText value="#{user.address}" /></td> 
       </tr> 
       <tr> 
        <td><h:outputText value="Enter Created Date : "/></td> 
        <td><h:inputText value="#{user.created_date}"> 
          <f:convertDateTime pattern="yyyy-MM-dd"/> 
         </h:inputText></td> 
       </tr> 
       <tr> 
        <td></td> 
        <td><h:commandButton value="Insert" action="#{user.add}"/></td> 
       </tr> 
      </table> 

我想知道如何將數據添加到數據庫中

編輯

我有剛剛檢查了glasfish服務器報告,發現了以下錯誤

INFO: In add 
INFO: about to add to db 
INFO: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1761) 
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1611) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:190) 
    at richard.test.User.add(User.java:69) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:275) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
    at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
    at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 
    at java.lang.Thread.run(Thread.java:724) 
SEVERE: java.lang.NullPointerException 
    at richard.test.User.add(User.java:93) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at com.sun.el.parser.AstValue.invoke(AstValue.java:275) 
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
    at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
    at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) 
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 
    at java.lang.Thread.run(Thread.java:724) 

回答

相關問題