无法使用JPA(java持久性)连接到mysql数据库

时间:2014-09-17 08:03:56

标签: java mysql servlets jpa

我对Java很新 - 但是来自PHP + JS。我的目标是使用Java Servlets创建一个CRUD(+ MVC)。

我正在使用 Java EE 7 。我在这里使用thisthat创建了一些模式(两者都有相同的最终文件)。

所以,我正在实现MVC,而我似乎无法让我的代码工作。 JPA似乎是主要问题;我无法从数据库中获取任何内容。

Here's the repository(非常小的项目 - 7~8班)。 Models; DAO

我设置controllers.Test(url:/ test)来测试我是否可以通过JPA与数据库进行实际通信。但是,当我转到/ test(controllers.Test)时,会抛出异常。 controllers.NewsEdit(网址:/编辑)也是如此。

java.lang.NullPointerException
    controllers.Test.doGet(Test.java:36)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)

当我访问home(url:/; controller.NewsIndex)时,我没有收到任何例外 - 我收到了主页,但根本没有数据。我有什么不对的吗?

我的SQL文件位于/sql文件夹中。我在persistent.xml上获得META-INF/

任何帮助或参考将不胜感激。真的需要学习它..

谢谢!

1 个答案:

答案 0 :(得分:1)

确定,

关于NullPointerException的lil解释。

当变量(在这种情况下为private NewsDAO newsDAO;)尚未初始化时,该指针"指针"在记忆中没有任何指示。然后,当你试图调用一个方法时,那里什么都没有,NPE就会发生。

这里的问题是私人NewsDAO newsDAO;没有被容器注入,因此当你调用newsDAO.all();时,newDAO为null并抛出异常。

CDI注入仅适用于容器管理的组件。我是一个春天的家伙,所以我不知道该去哪里。试着弄清楚你的NewsDAO是否被容器加载。

Tomcat是一个Web容器......您需要一个带有EJB容器的完整Application Server来运行您的示例。尝试下载并运行glassfish,JBoss或任何其他完整的应用服务器。

此处有更多信息。

http://en.wikipedia.org/wiki/Application_server#Java_application_servers

http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html