Play framework连接多数据库很简单。
但是这个很简单耗费了我整整两天的时间来找到这个答案。
还好苍天,我还是找到了。
=============================================================
Play通过Ebean好像可以很方便的链接多数据库,但是我使用的是JPA。
所以关于EBEAN是不是能“很方便的”连接多数据库我尽量不发表言论。
Hibernate连接数据库的方法据说有两种:
1.注解@PersistenceUnit或@PersistenceContext
2.配置JPA.getJPAConfig
完全不知道的可以继续往下看,否则可以跳过这一段。
先说想Play JPA中多数据源的配置吧。
先增加持久化单元:在conf/META-INF的persistence.xml中增加,完后是这样:
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <non-jta-data-source>DefaultDS</non-jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> </properties> </persistence-unit> <persistence-unit name="ojdbcPersistenceUnit" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <non-jta-data-source>OracleDS</non-jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> </properties> </persistence-unit>
然后在application.conf中增加数据源,完后如下:
db.default.driver=org.h2.Driver db.default.url="jdbc:h2:file:E:/work/setup/db/data" db.default.user=sa db.default.password=sa db.default.auth=false db.default.jndiName=DefaultDS jpa.default=defaultPersistenceUnit db.oracle.driver=oracle.jdbc.driver.OracleDriver db.oracle.url="jdbc:oracle:thin:@10.1.20.65:1521:abc" db.oracle.user=LOG db.oracle.password=LOG db.oracle.jndiName=OracleDS jpa.oracle=ojdbcPersistenceUnit
接下来就是痛苦的探索如何进行多数据库访问。
在网上搜索“jpa 多数据源”找到的基本都是和SPRING结合的,没想到JPA已经快成为spring的专属了。。。
通过在stackof上提问,得到的答案是刚才提到的两种方法:
但是这两种方法都不能奏效。可以留意我在问题下面的跟注。
http://stackoverflow.com/questions/16611839/play-framework-2-jpa-with-multiple-persistenceunit
http://play.lighthouseapp.com/projects/57987/tickets/706-multiple-databasejpa-support
尤其后来找到这个
http://stackoverflow.com/questions/8001809/jpa-getjpaconfig-method-not-found-on-plays-api
幸运的是终于找到了这个
http://stackoverflow.com/questions/10911492/play-framework-2-0-connecting-to-multiple-databases
从问题下面作者的回复看到尽管
jpa.getConfig("sth").em()
不管事,但是可以用
jpa.em("sth")
于是改成这样:
JPA.em("default").createQuery(
大功终于告成 。只要为em()指定连接对象即可
相关推荐
Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的对象。它是Java EE和Java SE应用程序中的ORM(对象关系映射)解决方案,允许开发者使用Java对象来操作数据库,从而避免了直接编写SQL...
SpringBoot整合JPA实现自动创建数据库表自动建表,JPA逆向生成数据库表 运行环境 jdk8+tomcat9+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+jpa 数据库文件(可选) 新建一个test的数据库即可,表在...
这个文件是JPA的配置中心,它定义了持久化单元(Persistence Unit),也就是数据库连接的相关信息。在这个例子中,配置文件内容如下: ```xml <provider>org.apache.openjpa.persistence.PersistenceProviderImpl...
今天整理了一个更加简单的自动建表方式,通过JPA实现 SpringBoot整合JPA实现自动创建数据库表自动建表,JPA逆向生成数据库表 运行环境 jdk8+tomcat9+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+jpa ...
有关国产数据库完整的博客太少了,所以就想弄一个完整的专栏给大家提供一些帮助。在现在这种国际形势下,网络安全是每个企业,乃至整个国家重中之重的事,国产化是一种趋势,在整合之前先了解一下达梦数据库。达梦...
总结,通过Spring Boot、JPA和Hibernate,我们可以轻松地连接和操作MySQL数据库。配置好YML文件后,利用Spring Data JPA的便捷功能,我们可以快速实现数据的CRUD操作,极大地提高了开发效率。在实际项目中,还可以...
通过这个示例,你可以了解到JPA如何简化与数据库的交互,以及Spring Boot如何轻松地集成这些组件。为了进一步深入,你可以尝试添加更多的实体类、关联关系以及更复杂的查询,从而更好地理解JPA的功能和优势。
- **连接池**: 配置合适的连接池,如HikariCP或C3P0,可以有效管理数据库连接,减少资源消耗。 总的来说,`hibernate-jpa-2.1-api-1.0.0.final.jar`为开发者提供了丰富的JPA 2.1特性的实现,使得在Java项目中使用...
在“jpa操作mysql数据库”的项目中,我们可以推断出这个工程是使用JPA来连接并操作MySQL数据库的。这通常涉及到以下几个关键点: 1. **配置JPA**:首先,工程中必须包含JPA的依赖库,如Hibernate或EclipseLink等...
在使用 Spring Data JPA 连接 MySQL 8.x 时,需要在 application.properties 文件中配置数据库连接信息。需要注意四个重要的点: 1. URL 中的数据库名称必须是已经创建的数据库名称。 2. 需要配置时区, MySQL 8.x ...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
首先,我们需要在`application.yml`或`application.properties`文件中定义各自的数据库连接信息,例如: ```yaml # application.yml spring: datasource: primary: url: jdbc:mysql://localhost:3306/main_db ...
在IBM Websphere 8.5环境中配置JPA 2.1的支持,主要是因为该版本默认仅支持JPA 2.0,而某些项目可能需要使用JPA 2.1提供的新特性和功能。以下是一步步指导如何进行配置: 1. **修改Hibernate配置文件**: 在项目的...
数据库连接配置通常在`persistence.xml`文件中进行,包括数据源、JPA供应商、实体类等信息。项目中的业务逻辑会围绕`EntityManager`实例进行,例如,添加新图书、查找特定图书、更新图书信息或删除图书。 总的来说...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
2. **配置JPA和数据库连接**: - 在项目中,右键点击`src/main/resources`目录,选择`New > Other > JPA > Persistence Unit`来创建一个新的持久化单元(Persistence Unit)。这里需要填写数据库的相关信息,如JDBC...
然后,在`application.properties`或`application.yml`中配置数据库连接信息: ```properties # application.properties 示例 spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTime...
JPA 是Java平台上的一个标准,它提供了一种面向对象的方式来处理关系数据库,使得开发者可以避免直接编写SQL语句,提高了代码的可读性和可维护性。 首先,我们要了解JPA的基本概念。JPA通过ORM(对象关系映射)将...
2. `Application.conf`:Play框架的配置文件,可能包含了数据库连接信息和其他设置。 3. ` controllers`目录:包含Play的控制器,处理HTTP请求并调用服务层方法。 4. `models`目录:可能包含JPA实体类,这些类对应于...
例如,定义一个用户实体(User),并在数据库中创建相应的表,然后通过JPA注解配置实体和字段的映射关系。 #### JPA开发工具 为了提高开发效率,可以利用Eclipse Dali JPA插件,它提供了图形化的界面来创建和管理...