java - JPA VS JDBC - 2 个问题

标签 java database jpa jdbc entity

我正在使用 Eclipse Juno IDE

在 phpMyAdmin 中,我创建了自己的数据库和表。 现在,我使用 JDBC 输入了一些记录。

接下来我尝试使用 JPA 实现一些查询,我创建了一个实体 具有相同的列和连接到我的数据库的 persistence.xml 。 但是当我运行该程序时,它会删除所有记录并创建 我的数据库中的一个新的空表(具有相同的名称)。 所以我的问题是:我如何连接到数据库中现有的表但不创建 一个新的。

另一个问题是:我没有给我的表主键,因为我的表是 关于司机旅行,所以每个司机可以旅行很多次......所以如果我使用主要 key 它不会添加有关驱动程序的新数据。使用 JDBC 可以正常工作。 但对于 JPA,实体需要一些字段作为主键..那么我该如何添加 JPA 中关于同一驱动程序的新数据?

持久性文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xsi:schemaLocation="http://java.sun.com/xml/ns/persistence                                   
         http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> 
         <persistence-unit transaction-type="RESOURCE_LOCAL" name="MyJPA"> 
             <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
             <class>pack.bl.Travels</class> 
             <properties> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/> 
                 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/drivers"/> 
                 <property name="javax.persistence.jdbc.password" value=""/> 
                 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
                 <property name="javax.persistence.jdbc.user" value="root"/>

             </properties> 
         </persistence-unit> 

代码:

     EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyJPA");
     EntityManager em = emf.createEntityManager();

     List<Travels> allTravels = em.createQuery("SELECT t FROM travels t",Travels.class).getResultList();
     for (Travels s : allTravels)
         System.out.println(s.toString());


     em.close();

最佳答案

id 自动增量字段添加到您的表中。它将成为主键。

关于表的自动创建,请看这里(我假设您使用 Hibernate 作为 JPA 实现): Hibernate hbm2ddl.auto possible values and what they do?

关于java - JPA VS JDBC - 2 个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12191181/

相关文章:

MySQL - 通过通用 ID 连接 2 个表

java - Persistence.XML JavaEE 与 EJB 和 Intellij

java - JPA ManyToMany 使用分组和交叉连接将数据连接在一起

java - JOptionPane 错误故障排除

java - 订阅和取消订阅每个发出的项目

java - 如何在ARM/Samsung series 3上安装JDK和Intellij IDEA

java - 从标签名称 Java 获取 XML 信息

PHP 在 MYSQL 数据库和日期方面需要帮助

php - 如何使用位域存储星期几?

java - 为什么 JPA\Hibernate 不自动创建这个映射字段?