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

问题描述:

我有一个现有的eclipse项目(JAVA应用程序),现在我在xampp - phpMyAdmin中创建了一个表 。 在项目,我需要实现在两个方面所有的查询和数据库:如何将JPA添加到现有的eclipse项目中?

1)JDBC

2)JPA

和使用Spring机制来选择其中之一。

所以我有一些问题:

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

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

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

+0

让我知道Spring的哪种机制? –

回答这个问题的一部分,如果你使用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> 

现在,关于Spring可与JPA的样子,我不能回答你,也许别人。但我希望这有助于

+0

是的,我使用Hibernate。但是在JDBC和JPA之间的选择需要从配置文件中完成.. – eliorsh

+0

谢谢Montolide!所以我可以创建一个常规的xml文件,命名为'persistence.xml'?并且它不需要位于'META-INF'文件夹中? – eliorsh

+0

将项目配置为JPA,有时候可以使用JDBC,就像我上面所做的那样,不需要做任何其他配置(只需要persistence.xml)。顺便说一句,这适用于Hibernate 4.0及更高版本。是的,你需要把persistence.xml放在META-INF文件夹中,它只是一个普通的xml :) – Montolide

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> 

2)如何连接到我在使用JPA phpMyAdmin的数据库?

phpMyAdmin只是与MySQL一起工作的另一个工具,您应该打扰数据库而不是工具。检查这个link,你可能会发现这有帮助

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

JDBC是最低级别,其他级别是最高级别。我更喜欢使用JDBC来实现性能。另外,当我只是想频繁地编辑某个特定的列时,我更喜欢使用JPA的JDBC。

JDBC VS ORM (JPA)

优势JDBC

  • 干净,容易对小程序
  • JDBC提供大数据量的良好表现
  • 小JDBC程序可以开发很容易
  • 非常适合小应用
如果是在大型项目中使用JDBC

  • JDBC的个

    缺点是不容易。有一个大的编程开销 。

  • 程序员必须硬编码应用程序中的事务和并发代码。
  • 处理JDBC连接并正确关闭连接也是一个大问题。正确关闭连接是必须的。
  • JDBC是不好的大应用ORM

    • 无需处理SQL查询来保存和检索数据
    • 简单的配置
    • 标准化的API的

    优势坚持业务对象

  • 快速开发应用
  • 并发支持
  • 的应用
  • 注射事务管理
  • 配置日志
  • 简单的性能更好的学习和使用ORM

    • 慢的

    缺点

  • 优秀兑现支持大批量更新时的性能
  • 稍慢于JDBC
+0

谢谢你的答案。你是对的,问题2我的意思是数据库.. – eliorsh