Từ các ví dụ bên dưới trong tài liệu sql. Nếu tôi sử dụng một trong những cách này để tạo một cá thể sql ở giữa một lớp dịch vụ grails, nó sẽ sử dụng kết nối grails pooling? Nó sẽ tham gia vào bất kỳ khả năng giao dịch nào? Tôi có cần tự đóng kết nối không? Hay nó sẽ tự động quay trở lại hồ bơi?Nếu tôi sử dụng lớp sql groovy trong grails, nó có sử dụng kết nối grails pooling không?
def db = [url:'jdbc:hsqldb:mem:testDB', user:'sa', password:'', driver:'org.hsqldb.jdbcDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)
hoặc nếu bạn có một kết nối hiện có (có lẽ từ một hồ bơi kết nối) hoặc một nguồn dữ liệu sử dụng một trong các nhà thầu:
def sql = new Sql(datasource)
Bây giờ bạn có thể gọi sql, ví dụ để tạo ra một bảng:
sql.execute '''
create table PROJECT (
id integer not null,
name varchar(50),
url varchar(100),
)
'''
Xin chào Ernesto, tôi nhận ra rằng tôi không thêm đủ thông tin vào câu hỏi mà tôi thực sự cần trả lời. Tôi có nhiều nguồn dữ liệu và tôi sẽ không biết cho đến khi tôi thấy dữ liệu trong thời gian chạy mà nguồn dữ liệu tôi sẽ sử dụng. Tôi tin rằng tôi không thể tiêm nhiều nguồn dữ liệu vào một dịch vụ. Vì vậy, câu hỏi lớn hơn là thực sự làm thế nào tôi có thể chọn cơ sở dữ liệu tôi muốn đi đến, sử dụng lớp Sql và cũng có được tự động tổng hợp. Và tôi có thể muốn làm điều này trong các lớp học ngoài các lớp dịch vụ. Tôi không cần quản lý giao dịch dịch vụ. – Andrew