Java 如何将JPA添加到现有的eclipse项目中?

Java 如何将JPA添加到现有的eclipse项目中?,java,spring,jpa,jdbc,phpmyadmin,Java,Spring,Jpa,Jdbc,Phpmyadmin,我有一个现有的eclipse项目(JAVA应用程序),现在我创建了一个表 在xampp-phpMyAdmin中。 在该项目中,我需要以两种方式实现所有查询和数据库: 1) JDBC 2) JPA 并使用弹簧机构选择其中一个 所以我有一些问题: 1) 如何将JPA添加到现有项目中?因为我读到我需要 有一个“persistence.xml”文件,该文件需要位于“META-INF”文件夹中 我在java项目中没有 2) 如何使用JPA连接到phpMyAdmin中的数据库 3) 如何使用Spring机制

我有一个现有的eclipse项目(JAVA应用程序),现在我创建了一个表 在xampp-phpMyAdmin中。 在该项目中,我需要以两种方式实现所有查询和数据库:

1) JDBC

2) JPA

并使用弹簧机构选择其中一个

所以我有一些问题:

1) 如何将JPA添加到现有项目中?因为我读到我需要
有一个“persistence.xml”文件,该文件需要位于“META-INF”文件夹中 我在java项目中没有

2) 如何使用JPA连接到phpMyAdmin中的数据库


3) 如何使用Spring机制在JDBC和JPA之间进行选择?

回答部分问题,如果您使用Hibernate作为JPA提供程序,您可以通过以下方式从JPA更改为JDBC:

Session session = em.unwrap(Session.class);
session.doWork(new Work() {

    @Override
    public void execute(Connection connection) throws SQLException {
        Statement stmt = connection.createStatement();
        String nativeSql = "SELECT * FROM USERS"; 
        stmt.executeUpdate(nativeSql);
        stmt.close();
    }
});
回答问题1和2: 正如您所说,您只需要创建一个名为persistence.xml的文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
    <persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="pass"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
        </properties>
    </persistence-unit>
</persistence>

org.hibernate.ejb.HibernatePersistence
现在,关于Spring与JPA的合作方式,我不能回答你,也许是其他人。但我希望这能有所帮助

1) 如何将JPA添加到现有项目中?因为我读到我 需要有一个“persistence.xml”文件,该文件需要位于 “META-INF”文件夹,我在java项目中没有该文件夹

您可以手动添加它

样品

<persistence 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"
                 version="1.0">
         <persistence-unit name="foo" transaction-type="RESOURCE_LOCAL">
            <class>org.bar.foobar</class>
                // Add required classes here
         </persistence-unit>

        // You can add more persistence unit as per required.
 </persistence>

org.bar.foobar
//在此处添加必需的类
//您可以根据需要添加更多的持久性单元。
2) 如何使用JPA连接到phpMyAdmin中的数据库

phpMyAdmin
只是另一个使用MySQL的工具,您应该关注数据库而不是工具。检查此项,您可能会发现此项很有帮助

3) 如何使用Spring机制在JDBC和JPA之间进行选择

JDBC是最低级别的,其他的则构建在它之上。说到性能,我更喜欢JDBC。另外,当我只想频繁编辑某个专栏时,我更喜欢JDBC而不是JPA

JDBC的优势

  • 对于小程序来说,它是干净和容易的
  • JDBC提供了大量数据的良好性能
  • 可以非常容易地开发小型JDBC程序
  • 非常适合小型应用
JDBC的缺点

  • 如果在大型项目中使用JDBC,就不容易了。有一个很大的问题 编程开销
  • 程序员必须在应用程序中硬编码事务和并发代码
  • 处理JDBC连接并正确关闭连接也是一个大问题。必须正确关闭连接
  • JDBC不适合大型应用程序
ORM的好处

  • 不需要处理SQL查询来保存和检索数据
  • 简单配置
  • 用于持久化业务对象的标准化API
  • 应用的快速发展
  • 并发支持
  • 卓越的兑现支持,可提高应用程序的性能
  • 注入式事务管理
  • 可配置日志记录
  • 易学易用
ORM的缺点

  • 大批量更新时性能较慢
  • 比JDBC慢一点

让我知道Spring的哪种机制?是的,我正在使用Hibernate。但是JDBC和JPA之间的选择需要从一个配置文件中完成。谢谢Montolide!所以我可以创建一个常规的xml文件,名为“persistence.xml”?而且它不需要位于“META-INF”文件夹中?将项目配置为JPA,您有时可以使用JDBC,就像我上面所做的那样,无需进行任何其他配置(只需persistence.xml)。顺便说一句,这适用于Hibernate4.0及更高版本。是的,您需要将persistence.xml放在META-INF文件夹中,它只是一个普通的xml:)我单击了项目属性,然后单击了项目事实,然后我选择了JPA,对吗?您不需要这样做,这只是一种eclipse方式(或JBoss工具?)来简化您的开发,但这样做并不能让你的项目成为“JPA就绪”