如何将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之间进行选择?
回答这个问题的一部分,如果你使用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的样子,我不能回答你,也许别人。但我希望这有助于
是的,我使用Hibernate。但是在JDBC和JPA之间的选择需要从配置文件中完成.. – eliorsh
谢谢Montolide!所以我可以创建一个常规的xml文件,命名为'persistence.xml'?并且它不需要位于'META-INF'文件夹中? – eliorsh
将项目配置为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
- 干净,容易对小程序
- JDBC提供大数据量的良好表现
- 小JDBC程序可以开发很容易
- 非常适合小应用
- JDBC的个
缺点是不容易。有一个大的编程开销 。
- 程序员必须硬编码应用程序中的事务和并发代码。
- 处理JDBC连接并正确关闭连接也是一个大问题。正确关闭连接是必须的。
- JDBC是不好的大应用ORM
- 无需处理SQL查询来保存和检索数据
- 简单的配置
- 标准化的API的
优势坚持业务对象
- 快速开发应用
- 并发支持 的应用
- 注射事务管理
- 配置日志
- 简单的性能更好的学习和使用ORM
- 慢的
缺点
- 优秀兑现支持大批量更新时的性能
- 稍慢于JDBC
谢谢你的答案。你是对的,问题2我的意思是数据库.. – eliorsh
让我知道Spring的哪种机制? –