0

我有两个实体:学生和地址

我在 Student 类和 JSP 页面中添加了 OneTeOne 注释,我可以在 foreach JSTL 标记中使用 ${stud.address.country} 获取给定学生的地址。

它正在工作,但问题是:我必须通过 phpMyAdmin 而不是通过 JSP 页面来坚持一个新学生。

那么我应该在 JSP 代码和 servlet 代码中添加什么来添加/保留具有自己的数据地址数据的新学生?

(我是 Java 网络的新手)

这是netbeans源项目的链接

4

1 回答 1

0

据我所知,phpMyAdmin 只不过是一个基于 PHP 的 MySQL 管理实用程序。因此,当您在 Java 环境中工作时,您不必也不应该使用它来持久化您的实体的简单答案。

如果您还没有,请考虑为您的项目声明一个持久性单元。根据您的环境,还可以了解如何设置连接到 MySQL 实例的数据源,然后使用EntityManager API进行持久化操作。

我建议先从JPA教程开始。特别是关于持久性单元应用程序管理与容器管理实体管理器的部分。

抱歉,我认为没有更简单的方法可以为您指明正确的方向,我怀疑是否有更短的路线。

更新

我查看了您的 Dropbox 内容,您似乎主要使用 IDE 生成的代码,这些代码应该可以正常使用。您的持久性单元声明可能是您的问题所在。

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="CRUDWebApplicationPU" transaction-type="JTA">
        <jta-data-source>jdbc/studentDB2</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties/>
    </persistence-unit>
</persistence>

<jta-data-source>jdbc/studentDB2</jta-data-source>- 是jdbc/studentDB2部署环境中 java.sql.Datasource 的有效 JNDI 名称吗?基本上,您必须在连接到数据库的部署环境中配置数据源(请注意,那里的配置是特定于环境的)。然后你的代码应该可以正常工作。为了获得更好的答案,您必须更具体。

于 2013-03-12T03:47:19.527 回答