我相对较新的Java,但对数据库有相当多的经验。过去一周我一直在阅读JAVA中用于访问Web服务的数据库的各种方法,并且我已经通过了几个Netbeans教程。
我需要创建一个简单的Web服务,从数据库中查询和检索相当少的数据。我需要根据唯一键查找单个值并返回它,并在子表中执行单个记录插入。我试图通过一些简单的查询或使用JPA实体来决定是否这样做。
在其他语言中,我会编写代码来进行数据库连接并自己按摩数据,但我发现Java能够使用实体来表示不同的表并执行所有的操作。重物"使用JPA。但是,对于Web服务的一些简单查询,这似乎是一大笔开销。我很好奇是否有人可以告诉我使用JPA和实体的开销是什么,而只是使用带有简单SQL语句的EntityManager来获取数据?你发现使用一个与另一个有什么好处吗?当我看到开发平台过去构建额外的对象时,通常会增加一些复杂性和性能点击。
提前谢谢。
答案 0 :(得分:0)
我认为使用JPA与使用带有SQL查询的EntityManager进行开销并不是什么大不了的事。
实际上,您将添加更多开销,尝试使用EntityManager来执行SQL查询。在JPA的域中,这些查询被命名为" Native Queries"。
使用JPA与Query方法的一个直接好处是ORM,这允许您避免创建任何类型的查询并在大插入语句中传递命名参数并自动从resultSet创建对象,您不再担心循环ResultSet并提取列以创建bean。
实际上,如果要执行查询,则需要创建相同的Java Bean来管理返回的对象,因此添加一些注释并不是什么大不了的事。
对于您要创建的项目类型,只需花费更多时间配置您的应用,但是当您拨打em.persist(entity)
而不是INSERT INTO table values (?,?,?,?,?)
时,您会喜欢它,和其他持续的操作。
将JPA视为一种解决方案,使对象关系映射更容易,非侵入式持久层,基于POJO。
最后,JPA的模型简单而优雅,功能强大且灵活,当您想要配置数据库模型时,它可能是完美的,但不是您的情况。