当前位置: 首页 > news >正文

做门窗可以放什么网站特价网站建设公司

做门窗可以放什么网站,特价网站建设公司,wampserver集成环境搭建了一个织梦cms网站,单位网站建设存在问题情况汇报JPA代表Java Persistence API#xff0c;它基本上是一个规范#xff0c;描述了一种将数据持久存储到持久存储#xff08;通常是数据库#xff09;中的方法。 我们可以将其视为类似于Hibernate的 ORM工具的东西#xff0c;除了它是Java EE规范的正式组成部分#xff08;并… JPA代表Java Persistence API它基本上是一个规范描述了一种将数据持久存储到持久存储通常是数据库中的方法。 我们可以将其视为类似于Hibernate的 ORM工具的东西除了它是Java EE规范的正式组成部分并且Java SE也支持它。 有很多原因需要学习像JPA这样的ORM工具。 我不会详细介绍这个问题因为网络上已经有很多帖子可以完美地回答这个问题例如这个问题或这个问题 。 但是我们还应该记住 这不是解决所有问题的灵丹妙药 。 刚开始使用JPA时我很难设置它因为Web上的大多数文章都是针对Java EE环境编写的而我却试图在Java SE环境中使用它。 我希望本文对将来希望这样做的人有所帮助。 在此示例中我们将使用Maven设置所需的依赖关系。 由于JPA只是一个规范因此我们还需要一个实现。 JPA有许多不错的免费实现例如EclipseLinkHibernate等。 在本文中我选择使用Hibernate。 至于数据库我将使用MySQL。 让我们首先创建一个简单的Maven项目。 我已经从命令行使用快速入门原型创建了我的。 如果您不知道该怎么做可以按照本教程进行操作 。 好的接下来让我们获取JPA的依赖项。 在pom.xml中包括以下几行 dependencygroupIdjavax.persistence/groupIdartifactIdpersistence-api/artifactIdversion1.0.2/version /dependency dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-entitymanager/artifactIdversion4.3.6.Final/versionexclusionsexclusiongroupIdorg.hibernate.javax.persistence/groupIdartifactIdhibernate-jpa-2.1-api/artifactId/exclusion/exclusions /dependency 第一个依赖关系指定标准的JPA接口第二个依赖关系指定实现。 以这种方式包含JPA依赖关系是可取的因为它使我们将​​来可以自由切换特定于供应商的实现而不会遇到太大问题 请参阅此处的详细信息 。 但是由于API版本1.0.2是作为独立JAR发布的最后一个版本因此我们将无法使用该API的最新版本。 在撰写本文时JPA规范的最新版本是2.1尚无法独立获得尽管有很多 要求 。 如果我们现在想使用那个那么我们唯一的选择是从特定于供应商的JAR中选择或者使用提供API及其实现的应用服务器。 我决定使用Hibernate提供的API规范。 在这种情况下仅包含以下依赖关系就足够了 dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-entitymanager/artifactIdversion4.3.6.Final/version /dependency 下一步将包括对MySQL的依赖关系。 在pom.xml中包括以下几行 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.31/version /dependency 包括其余依赖项即jUnitHamcrest等之后完整的pom.xml如下所示 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.keertimaan.javasamples/groupIdartifactIdjpa-example/artifactIdversion0.0.1-SNAPSHOT/versionpackagingjar/packagingnamejpa-example/nameurlhttp://www.codesod.com/urlpropertiesjava.version1.8/java.versionhibernate.version4.3.6.Final/hibernate.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- JPA --dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-entitymanager/artifactIdversion${hibernate.version}/version/dependency!-- For connection pooling --dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-c3p0/artifactIdversion${hibernate.version}/version/dependency!-- Database --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.31/version/dependency!-- Test --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scopeexclusionsexclusiongroupIdorg.hamcrest/groupIdartifactIdhamcrest-core/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.hamcrest/groupIdartifactIdhamcrest-all/artifactIdversion1.3/versionscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion2.5.1/versionconfigurationsource${java.version}/sourcetarget${java.version}/targetcompilerArgument-Xlint:all/compilerArgumentshowWarningstrue/showWarningsshowDeprecationtrue/showDeprecation/configuration/plugin/plugins/build /project 现在是时候配置我们的数据库了。 我将从这本出色的在线书中找到的所有将来的JPA示例中都将使用以下模式 数据库架构 在本地MySQL安装中按照上述模式创建一个等效的数据库。 下一步是创建persistence.xml文件该文件将包含我们的数据库特定信息供JPA使用。 默认情况下JPA希望此文件位于META-INF文件夹下的类路径中。 对于我们的Maven项目我在project_root / src / main / resources / META-INF文件夹下创建了此文件 persistence xmlnshttp://xmlns.jcp.org/xml/ns/persistence xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/persistencehttp://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsdversion2.1persistence-unit namejpa-example transaction-typeRESOURCE_LOCALproviderorg.hibernate.jpa.HibernatePersistenceProvider/providerpropertiesproperty namejavax.persistence.jdbc.url valuejdbc:mysql://localhost/jpa_example /property namejavax.persistence.jdbc.user valueroot /property namejavax.persistence.jdbc.password valuemy_root_password /property namejavax.persistence.jdbc.driver valuecom.mysql.jdbc.Driver /property namehibernate.show_sql valuetrue /property namehibernate.format_sql valuetrue /property namehibernate.dialect valueorg.hibernate.dialect.MySQL5InnoDBDialect /property namehibernate.hbm2ddl.auto valuevalidate /!-- Configuring Connection Pool --property namehibernate.c3p0.min_size value5 /property namehibernate.c3p0.max_size value20 /property namehibernate.c3p0.timeout value500 /property namehibernate.c3p0.max_statements value50 /property namehibernate.c3p0.idle_test_period value2000 //properties/persistence-unit /persistence 如果您绝对是JPA的初学者则上面的文件需要一些解释。 在我的下一篇文章中我将尽可能地解释它但是对于运行此示例您只需要更改前三个属性值以匹配您的环境即数据库名称用户名和密码即可。 还要记下persistence-unit元素的name属性的值。 此值稍后将在代码中用于实例化EntityManagerFactory实例。 好的现在让我们创建一个实体来测试我们的配置。 创建一个具有以下内容的名为Address的类 import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table;Entity Table(name address) public class Address {IdGeneratedValueprivate Integer id;private String street;private String city;private String province;private String country;private String postcode;/*** return the id*/public Integer getId() {return id;}/*** param id the id to set*/public Address setId(Integer id) {this.id id;return this;}/*** return the street*/public String getStreet() {return street;}/*** param street the street to set*/public Address setStreet(String street) {this.street street;return this;}/*** return the city*/public String getCity() {return city;}/*** param city the city to set*/public Address setCity(String city) {this.city city;return this;}/*** return the province*/public String getProvince() {return province;}/*** param province the province to set*/public Address setProvince(String province) {this.province province;return this;}/*** return the country*/public String getCountry() {return country;}/*** param country the country to set*/public Address setCountry(String country) {this.country country;return this;}/*** return the postcode*/public String getPostcode() {return postcode;}/*** param postcode the postcode to set*/public Address setPostcode(String postcode) {this.postcode postcode;return this;} } 此类已正确映射到地址表并且其实例已准备就绪可以持久存储在数据库中。 现在让我们创建一个名为PersistenceManager的帮助程序类其中包含以下内容 import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence;public enum PersistenceManager {INSTANCE;private EntityManagerFactory emFactory;private PersistenceManager() {// jpa-example was the value of the name attribute of the// persistence-unit element.emFactory Persistence.createEntityManagerFactory(jpa-example);}public EntityManager getEntityManager() {return emFactory.createEntityManager();}public void close() {emFactory.close();} } 现在让我们在Main方法中编写一些示例持久性代码以测试所有内容 import javax.persistence.EntityManager;public class Main {public static void main(String[] args) {Address address new Address();address.setCity(Dhaka).setCountry(Bangladesh).setPostcode(1000).setStreet(Poribagh);EntityManager em PersistenceManager.INSTANCE.getEntityManager();em.getTransaction().begin();em.persist(address);em.getTransaction().commit();em.close();PersistenceManager.INSTANCE.close();} } 如果您检查数据库将会看到地址表中已插入新记录。 本文介绍了如何在不使用任何其他框架如Spring的情况下设置JPA。 但是使用Spring设置JPA是一个非常好的主意因为在这种情况下我们不必担心管理实体管理器事务等。除了设置JPA之外Spring 对于许多其他目的也非常有用。 今天就这样。 在下一篇文章中我将尝试解释persistence.xml文件和相应的配置值。 敬请关注 完整的代码可以在github上找到。 翻译自: https://www.javacodegeeks.com/2014/08/jpa-tutorial-setting-up-jpa-in-a-java-se-environment.html
http://icebutterfly214.com/news/72983/

相关文章:

  • 2025年评价高的舟山注塑螺杆/片材螺杆厂家最新用户好评榜
  • 2025年专业的梯形排水沟滑模机/全自动水沟滑模机厂家推荐及选购指南
  • 2025年质量好的抽屉式厨房拉篮厂家推荐及选购参考榜
  • 通过自动DNS代理实现SSL证书免费申请
  • 2025年11月北京财税公司推荐:权威榜单与专业选择指南
  • 2025年frpp增强管定做厂家权威推荐榜单:frpp管材/PPH热熔弯头/pp工业管材源头厂家精选
  • 2025年机器人柔性夹爪选型指南:优质厂家推荐
  • 头发稀疏变浓密最有效的方法是什么?2025年度生发产品权威测评,KOUND发养宁助你找回浓密秀发
  • 题解:P1471 方差
  • 2025 年 11 月热回收设备厂家权威推荐榜:热回收转轮、热管热回收、三维热管、U型热管、分解式乙二醇及烟气余热回收系统高效节能解决方案
  • 2025年度中频炉靠谱厂家排名:500公斤中频炉/铝壳中频炉
  • 2025上海留学中介十大排名
  • 2025 年 11 月电线电缆租赁厂家实力推荐榜:电缆线出租,临时用电电缆租赁,电力电缆租赁,空调电缆租赁,高效安全供电解决方案精选
  • 2025 年 11 月牙刷品牌权威推荐榜:涵盖软毛/电动/儿童/便携/声波/护龈/脱敏/旋转式/超软毛牙刷,专业口腔护理与深度清洁口碑之选
  • 2025年11月医药翻译机构综合评测榜:十大服务商详细对比与选择要点
  • 最新推荐:哪些国内PLM厂商更适合汽车零部件制造企业
  • 2025年质量好的西安水泵_西安水泵批发厂家最新推荐榜
  • 完整教程:Linux----进程控制
  • 【Springer出版 | EI检索】第五届环境污染与治理国际学术会议 (ICEPG 2025)
  • 2025年11月全过程工程咨询公司推荐榜单:五大权威机构综合对比分析
  • rust字符串数据类型String、str、CString和CStr
  • 2025年口碑好的红木家具厂家最新实力排行
  • 2025年2.0mm人工湖用防渗土工膜/光面防渗土工膜环保材料推荐榜
  • 扫描线+图论优化学习笔记
  • 墙面翻新别瞎选!2025涂料十大品牌权威榜,荷兰蔻帝防霉抗污封神
  • TabControl的bug
  • 2025年口碑好的钢辊橡胶辊实力厂家TOP推荐榜
  • 2025年11月景区饮品供应商推荐榜单与选择指南:主流品牌深度对比分析
  • 2025年11月抗老护肤品排行榜单解析:基于真实数据的权威推荐
  • 2025变压吸附制氮机厂家精选!凭高纯产气+节能优势领跑行业