我正在开发一个Java桌面应用程序,但在为持久层选择技术方面存在一些困惑.
直到现在,我一直在使用JDBC进行数据库操作.现在,最近我学习了Hibernate和JPA,但我仍然是这些技术的新手.
现在我的问题是如何从我的Java桌面应用程序中使用以下内容?
JPA
过冬
JDBC
DAO
你的任何其他建议......
我知道他们没有最好的选择,这完全取决于项目的复杂性和重新发现,所以下面是我项目的要求
==================================== EDITED ============= ==========================
根据以下答案,我想使用JPA,以防止自己编写特定于供应商的SQL代码.
但是我在Java Persistence API中提到的JPA中存在一些问题
我刚加入了基于spring框架的正在进行的项目.它使用hibernate作为ORM系统.它很好地集成了.我从这个项目中学到了很多东西.但有些我对hibernate,JPA的理解不满意,当它们混合在一起时.当我的PM正在谈论一个关于hibernate视角的术语以及他什么时候转向JPA时,我一直很难理解.
所以,请给我一些关于这些条款的见解..它们是如何整合的?他们是如何彼此分开的?在spring-hibernate的上下文中:拥有hibernate模板意味着什么?
这里有很多问题; 我想,我无法准确地提出我的问题; 但我对整个条款的状态非常困惑.... :(
Reagard; Vijay Shanker
我试图通过使用JAP和HIBERNATE向SQL Server 2008 R2插入一些数据.一切都"有效",除非它非常慢.要插入20000行,大约需要45秒,而C#脚本大约需要不到1秒.
这个域名中的任何退伍军人都可以提供一些帮助吗?我会很感激.
更新:从下面的答案得到了一些很好的建议,但它仍然没有按预期工作.速度是一样的.
这是更新的persistence.xml:
<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="ClusterPersist"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>cluster.data.persist.sqlserver.EventResult</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:sqlserver://MYSERVER:1433;databaseName=MYTABLE" />
<property name="javax.persistence.jdbc.user" value="USER" />
<property name="javax.persistence.jdbc.password" value="PASSWORD" />
<property name="javax.persistence.jdbc.driver"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="hibernate.show_sql" value="flase" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.provider_class"
value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.max_size" value="100" />
<property name="hibernate.c3p0.min_size" value="0" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="300" />
<property name="hibernate.c3p0.max_statements" value="0" />
<property name="hibernate.c3p0.timeout" value="100" />
<property name="hibernate.jdbc.batch_size" value="50" />
<property name="hibernate.cache.use_second_level_cache" value="false" /> …
Run Code Online (Sandbox Code Playgroud) 我想在耳朵项目中使用JPA.开发项目必须尽快开始,所以我没有太多时间进行研究和调查.请问说JPA API是Hibernate的限制功能还是没有.此刻我正在直接使用Hibernate.例如,在未来我打算使用hibernate-search,也许是hibernare-validate和-shard.我可以确定将来使用它时不会有问题.还有一个例子 - 我可以一起使用HAR档案和JPA吗?为何选择JPA?对于项目将提供RESTful服务(泽西或resteassy实施).而且我在很多情况下使用JPA来查看.我是新手,所以这只是我的恕我直言.可能是我的错误.
非常感谢.最好的问候Artem