在Grails中访问两个数据库,您需要配置两个数据源。以下是一个简单的示例,展示了如何在Grails应用程序中配置和访问两个不同的数据库。
在build.gradle
文件中添加所需的数据源依赖项。例如,如果您要使用MySQL和PostgreSQL数据库,则应添加以下依赖项:
dependencies {
runtimeOnly 'mysql:mysql-connector-java'
runtimeOnly 'org.postgresql:postgresql'
}
在grails-app/conf/application.yml
文件中配置两个数据源。例如:
dataSource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver
username: sa
password:
dbCreate: update
url: jdbc:mysql://localhost:3306/db1?useUnicode=yes&characterEncoding=UTF-8
dataSource_db2:
pooled: true
jmxExport: true
driverClassName: org.postgresql.Driver
username: sa
password:
dbCreate: update
url: jdbc:postgresql://localhost:5432/db2
为每个数据库创建一个实体类和一个数据访问对象。例如,对于MySQL数据库,您可以创建一个Person
实体类和一个PersonDao
数据访问对象。同样,对于PostgreSQL数据库,您可以创建一个Product
实体类和一个ProductDao
数据访问对象。
在每个数据访问对象中,使用@Transactional
注解指定要使用的数据源。例如,对于MySQL数据库的PersonDao
,您可以这样做:
@Transactional(dataSource = 'dataSource')
class PersonDao {
// ...
}
对于PostgreSQL数据库的ProductDao
,您可以这样做:
@Transactional(dataSource = 'dataSource_db2')
class ProductDao {
// ...
}
现在,您可以在应用程序中使用这些数据访问对象来访问两个数据库。例如:
class SomeController {
def personDao
def productDao
def index() {
def people = personDao.list()
def products = productDao.list()
[people: people, products: products]
}
}
这样,您就可以在Grails应用程序中访问两个不同的数据库了。
领取专属 10元无门槛券
手把手带您无忧上云