2012-10-27 41 views
0

我試圖使用java servlet和jpa訪問MySQL數據庫。我使用phpmyadmin創建了MySQL數據庫。我的數據庫包含一些數據,但在Tomcat 7服務器上運行java項目後,它無法從數據庫中獲取數據。我在這裏發佈我的實體類的Servlet和JSP的結果persistance.xml和屏幕捕獲(Here是,我試圖implemet教程)MySQL java servlet和JPA

的Eclipse 2.4.1鏈接JUNO

數據庫名稱:棒球

表:玩家

列:標識主鍵自動增加 ,名字,姓氏

實體類

package org.developerworks.baseball; 

import java.io.Serializable; 
import javax.persistence.*; 


/** 
    * The persistent class for the players database table. 
    * 
*/ 
@Entity 
@Table(name="players") 
public class Player implements Serializable { 
private static final long serialVersionUID = 1L; 

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
private int id; 

private String first_Name; 

private String last_Name; 

public Player() { 
} 

public int getId() { 
    return this.id; 
} 

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

public String getFirst_Name() { 
    return this.first_Name; 
} 

public void setFirst_Name(String first_Name) { 
    this.first_Name = first_Name; 
} 

public String getLast_Name() { 
    return this.last_Name; 
} 

public void setLast_Name(String last_Name) { 
    this.last_Name = last_Name; 
} 

} 

PlayerServlet

package org.developerworks.baseball.web; 

import java.io.IOException; 
import java.util.List; 
import javax.persistence.EntityManager; 
import javax.persistence.EntityManagerFactory; 
import javax.persistence.Persistence; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.developerworks.baseball.Player; 



/** 
* Servlet implementation class PlayerServlet 
*/ 
@WebServlet("/PlayerServlet") 
public class PlayerServlet extends HttpServlet implements javax.servlet.Servlet { 
static final long serialVersionUID = 1L; 
    private EntityManagerFactory factory; 
    private EntityManager em; 
    /* (non-Java-doc) 
     * @see javax.servlet.http.HttpServlet#HttpServlet() 
     */ 
    public PlayerServlet() { 
     super(); 
      factory = Persistence.createEntityManagerFactory("baseball"); 
      em = factory.createEntityManager(); 

    }   

    /* (non-Java-doc) 
     * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
     */ 
    @SuppressWarnings("unchecked") 
    protected void doGet(HttpServletRequest request, 
HttpServletResponse response) 
throws ServletException, IOException { 
      List<Player> players = em.createQuery("select p from Player p").getResultList(); 
      request.setAttribute("players", players); 
      request.getRequestDispatcher("/players.jsp").forward(request, response); 
    }  

    /* (non-Java-doc) 
     * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, 
                 HttpServletResponse response) 
     */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
      this.doGet(request, response); 
    }  

} 

player.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<table> 
     <thead> 
      <tr> 
       <td>First Name</td> 
       <td>Last Name</td> 
      </tr> 
     </thead> 
     <c:forEach items="${players}" var="player"> 
      <tr> 
       <td>${Player.first_Name}</td> 
       <td>${Player.last_Name}</td> 
      </tr> 
     </c:forEach> 
</table> 
</body> 

</body> 
</html> 

的persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
<persistence-unit name="baseball"> 

     <class>org.developerworks.baseball.Player</class> 
<properties> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/baseball"/> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    <property name="javax.persistence.jdbc.user" value="root"/> 
    <property name="javax.persistence.jdbc.password" value=""/> 

</properties>   
</persistence-unit>  
</persistence> 

結果頁面只能說明(我不能發表屏幕捕獲): 第一姓氏

控制檯輸出

Oct 27, 2012 10:08:53 AM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\ActiveState Komodo Edit 7\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Java\jre7\bin;C:\Program Files\Java\jdk1.7.0_02\bin;C:\Python26;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Java\jdk1.7.0_02\bin;C:\Program Files\Java\jre1.7.0\bin;C:\Python26;. 
Oct 27, 2012 10:08:53 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:cricket' did not find a matching property. 
Oct 27, 2012 10:08:53 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Baseball' did not find a matching property. 
Oct 27, 2012 10:08:53 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8085"] 
Oct 27, 2012 10:08:53 AM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Oct 27, 2012 10:08:53 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 1350 ms 
Oct 27, 2012 10:08:53 AM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Oct 27, 2012 10:08:53 AM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.23 
Oct 27, 2012 10:08:58 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8085"] 
Oct 27, 2012 10:08:58 AM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Oct 27, 2012 10:08:58 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 4686 ms 
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
[EL Info]: 2012-10-27 10:09:09.954--ServerSession(1934061893)--EclipseLink, version: Eclipse Persistence Services - 2.4.1.v20121003-ad44345 
[EL Info]: connection: 2012-10-27 10:09:10.495--ServerSession(1934061893)--file:/E:/Developments/ROSTER/wrk/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Baseball/WEB-INF/classes/_baseball login successful 

什麼是錯誤這裏? 我怎樣才能得到的數據到最終的頁面?

謝謝!

+0

我已經發布控制檯輸出請看看 –

回答

1

var="player"中你有一小部分,但是在表達式中,它的大寫爲${Player.first_Name}

<c:forEach items="${players}" var="player"> 
    <tr> 
      <td>${player.first_Name}</td> <!-- player not Player --> 
      <td>${player.last_Name}</td> <!-- player not Player --> 
    </tr> 
</c:forEach> 
+0

我改變了這一切,但結果並沒有改變:( –

+0

@AdityaEdri:您是否獲得任何異常檢查你的服務器日誌 –

+0

沒有任何異常 –