Một số lợi ích chủ yếu của bản phát hành mới của Data Studio Developer gồm:
- Cho bạn nhiều thông tin hơn để tập trung vào các nỗ lực tinh chỉnh SQL
của mình.
- Cải thiện chất lượng dịch vụ cho OpenJPA và cho các ứng dụng .
NET.
- Có cái nhìn thấu hiểu hơn vào bên trong những ứng dụng Java có sử dụng
SQL.
- Giúp bạn cải thiện năng suất và sự hợp tác giữa các chuyên viên phát
triển và các quản trị viên cơ sở dữ liệu.
- Bạn sẽ có khả năng để giảm bớt hay loại trừ nguy cơ “mũi tiêm SQL”
(SQL injection) cho các ứng dụng cơ sở dữ liệu với Java.
Một số điều kiện cần có trước để chạy các kịch bản thực hành
Bạn cần phải cài đặt các sản phẩm sau để thử các kịch bản bên dưới :
- Data Studio Developer 2.1
- DB2® cho Linux®, UNIX® và Windows® -– DB2 Express-C làm việc rất tốt
- Cơ sở dữ liệu mẫu của DB2 đi cùng với sản phẩm này.
Nhận diện các câu lệnh SQL và tần số thực thi của chúng
Các công cụ định hình hiện tại giúp cho bạn nhận diện phương thức Java™ nào trong ứng dụng cần nhiều thời gian nhất để chạy. Với Data Studio Developer 2.1 bạn có thể thâm nhập xuống sâu hơn, thậm chí thấy được các số đo hiệu năng của các phương thức Java mà có chứa lệnh gọi tới cơ sở dữ liệu. Dù bạn sử dụng pureQuery, JDBC hay khung công tác khác, bạn cũng có thể xác định được thời gian chạy của từng câu lệnh SQL trong ứng dụng của bạn, chúng chạy bao nhiêu lần và thời gian chạy tối đa, tối thiểu và trung bình là bao nhiêu.
Hãy thử các bước đơn giản sau trên Data Studio :
- Tại cửa sổ, bạn nhấn Data Management > Data Source Explorer (trước đây là Database Explorer). Tạo một kết nối tới cơ sở dữ liệu mẫu và đặt tên kết nối là SAMPLE.
- Tạo ra một dự án Java và đặt tên là myDSDPrj.
- Tải và sao chép các tệp TutMod.java và Util.java vào gói db2jcc.example. Tệp tin này là ứng dụng JDBC đơn giản hiện có mà bạn sẽ sử dụng để chạy nhiều kịch bản.
- Để thêm sự hỗ trợ pureQuery vào dự án :
- Nhấn phím phải chuột trên dự án và chọn pureQuery -> Add pureQuery support.
- Chọn SAMPLE và thêm lược đồ thích hợp để cấp tên đủ phân biệt cho bảng STAFF của bạn.
- Tại hình ở dưới, lược đồ là SSURANGE.
- Đánh dấu chọn hộp Enable SQL capturing and binding for JDBC applications
Hình 1. Thêm hỗ trợ pureQuery
Lưu ý bây giờ bạn có khả năng mạnh hơn nhiều khi xác định một lược đồ mặc định để cấp tên đủ phân biệt cho các bảng và khung nhìn. Sử dụng widget đường dẫn mặc định mới để cấp tên đủ phân biệt cho các thủ tục thường lệ (routine) có tên chưa đủ phân biệt của bạn.
- Để thu thập các số đo hiệu năng, hãy chạy ứng dụng bằng cách sử
dụng cấu hình pureQuery :
- Đặt lược đồ để cấp tên đủ phân biệt cho bảng STAFF trước
khi chạy ứng dụng. Để làm điều này, bạn mở
TutMod.Java, tìm tới dòng 66 và thay đổi giá
trị SSURANGE thành tên lược đồ của bạn và lưu tệp
stmt.execute("set current schema SSURANGE"); - . Sử dụng cấu hình pureQuery để chạy ứng dụng bằng cách mở tệp TutMod.java, rồi nhấn phím phải chuột trên tệp và chọn Run -> Run Configurations.
- Chọn pureQuery và cung cấp các thông tin cho tên cơ sở dữ liệu, máy chủ, cổng , ID người dùng và mật khẩu (Hình 2) và nhấn Run.
- SQL được thực hiện và thông tin hiệu năng được thu thập lại.
Hình 2. Chạy ứng dụng để thu thập các số đo của SQL
- Đặt lược đồ để cấp tên đủ phân biệt cho bảng STAFF trước
khi chạy ứng dụng. Để làm điều này, bạn mở
TutMod.Java, tìm tới dòng 66 và thay đổi giá
trị SSURANGE thành tên lược đồ của bạn và lưu tệp
- Để xem các thông tin hiệu năng:
- Nhấn chuột phải trên tệp myDSDPrj và chọn Show pureQuery outline
- Trong cửa sổ chính pureQuery, nhấn vào nút Toggle Profile
- Mở rộng dự án myDSDPrj và bạn có thể nhìn thấy
thông tin hiệu năng của mỗi câu lệnh SQL.
Ví dụ, hình ở dưới cho thấy câu lệnh SELECT được chạy 2 lần với tổng thời gian là 270 ms.
Hình 3. Các số đo thời gian thực hiện của SQL
Câu lệnh SELECT được chạy thường xuyên hơn và ứng dụng có lẽ đã được lợi bởi việc tối ưu hóa câu lệnh SQL này.
Tinh chỉnh và tối ưu hóa ứng dụng của bạn mà không thay đổi mã
Một khi bạn nhận diện được lệnh SQL có vấn đề, bạn cần tối ưu hóa nó. Đối với các ứng dụng đang sử dụng thực tế hay các ứng dụng được đóng gói bạn có thể không có khả năng để thay đổi mã nguồn ứng dụng, nhưng bạn vẫn muốn có khả năng thay đổi câu lệnh SQL được sinh ra. Ví dụ, bạn muốn thay đổi các SQL để tận dụng một chỉ mục mới bổ sung, để giới hạn số hàng được trả về, hay để thêm một mệnh đề ORDER BY rất cần thiết.
Data Studio Developer 2.1 cung cấp một bộ biên tập được kiểm soát để cho bạn thay thế câu lệnh SQL hiện hữu được phát sinh từ ứng dụng bằng một câu lệnh tương đương và hy vọng là tốt hơn. Bộ biên tập tự động làm cho có hiệu lực sự tương đương câu lệnh và không công nhận các câu lệnh không tương đương.
Thực hiện các bước đơn giản sau tại nơi cài đặt Data Studio Developer của bạn :
- Tại myDSDPrj, mở rộng pureQueryFolder. Nhấn đúp trên tệp capture.pdqxml
- Nhấn phím phải chuột trên câu lệnh SELECT (
SELECT id, name, dept, job, years, salary, comm FROM staff WHERE id = ?)và chọn Edit. Đây là câu lệnh SELECT mà bạn thấy ở Hình 3 phía trên. Chọn lược đồ mặc định để cấp tên đủ phân biệt cho bảng của bạn.
Hình 4. Câu lệnh SQL hiện hữu để giảm bớt số lượng hàng được trả về
- Bây giờ bạn có thể soạn thảo câu lệnh với SQL sau, nó tương đương
nhưng trả về ít hàng hơn:
SELECT id, name, dept, job, years, salary, comm FROM staff WHERE id = ? fetch first 2 rows only - Nhấn Save.
Hình 5. Thay thế bằng câu lệnh SQL tối ưu
Bây giờ khi bạn đã thay đổi SQL để trả về ít hàng hơn, chạy lại câu lệnh lần nữa và xem nó có làm nên bất kỳ sự khác biệt nào về các số đo hiệu năng chưa.
- Chạy ứng dụng lần nữa :
- Mở pdq.properties và tắt captureMode và thêm
enableDynamicSQLReplacement as true
pdq.captureMode=OFF pdq.executionMode=DYNAMIC pdq.enableDynamicSQLReplacement=TRUE. - Chạy ứng dụng sử dụng cấu hình pureQuery.
- Mở pdq.properties và tắt captureMode và thêm
enableDynamicSQLReplacement as true
- Để xem các số đo hiệu năng lần nữa, nhấn chuột phải vào myDSDPrj và chọn Show pureQuery outline
- Hình ở dưới cho thấy câu lệnh SELECT chạy hai lần (như trước đây)
nhưng với một thời gian tổng cộng là 126 ms. Bạn lưu ý rằng câu
lệnh SQL mất ít thời gian hơn so với trước đây.
Hình 6. Hiệu năng SQL tốt hơn sau khi thay thế bằng câu lệnh SQL tối ưu
Cải thiện chất lượng dịch vụ cho OpenJPA và cho các ứng dụng .NET
Xác định vấn đề và chất lượng dịch vụ trở nên dễ dàng với JPA
Bây giờ bạn có thể có được kiến thức về bất kỳ SQL và JPAQL nào tạo ra bởi các ứng dụng truy nhập dữ liệu DB2 dạng JPA hiện hữu hay mới. Bạn cũng có thể sử dụng ngay SQL tĩnh mà không phải thay đổi bất kỳ mã ứng dụng nào. Nếu ứng dụng của bạn sử dụng DB2, bạn hãy sử dụng bộ phát tĩnh (wsdb2gen) trong WebSphere® Application phiên bản 7 để thu thập SQL. Đa số các lợi ích đã sẵn có mà không phải chạy các ứng dụng. Đối với các trường hợp còn lại, hãy kết hợp với tối ưu hóa phía khách. Data Studio Developer 2.1 bao gồm các hỗ trợ về công cụ để làm cho quá trình sinh gói tĩnh dễ dàng hơn. Bạn cần phải có WebSphere 7 fixpack 3.
Hãy theo các bước đơn giản sau tại nơi cài đặt Data Studio Developer của bạn:
- Thêm hỗ trợ pureQuery vào dự án JPA của bạn.
- Thêm com.ibm.ws.jpa.jar từ nơi cài đặt WebSphere của bạn vào đường dẫn xây dựng (build path).
- Nhấn phím phải chuột trên persistence.xml và chọn pureQuery > Generate pureQueryXml file.
- Nhấn phím phải chuột trên project và chọn pureQuery->Show pureQuery outline.
- Xem tất cả các CRUDs có thể phát sinh từ các thực thể, các namedQueries và namedNativeQueries từ các thực thể cũng như các tệp ánh xạ.
- Nhấn đúp trên bất kỳ SQL nào để đi sâu vào trong mã nguồn JPA đã khởi sự truy vấn SQL.
- Như một bước tùy chọn, bạn có thể sử dụng sự tối ưu hóa phía khách để bắt giữ các lệnh SQL mà chỉ có sẵn trong chế độ chạy thực (ví dụ các câu lệnh JPAQL động). Chạy ứng dụng của bạn với pdq.Properties captureMode được bật ON và thu thập bất kỳ JPAQL và SQL nào lưu lại từ ứng dụng của bạn.
Dù ứng dụng của bạn đang sử dụng DB2 hay không, hãy tối ưu hóa ứng dụng JPA không-DB2 hiện hữu mà không thay đổi một dòng mã nào. Để thay thế SQL hiện hữu bằng một SQL tối ưu, bạn tham khảo mục Tinh chỉnh và tối ưu hóa ứng dụng của bạn mà không thay đổi mã. Tham khảo thêm hướng dẫn thực hành chuyên sâu về sự hỗ trợ của Data Studio Developer 2.1 cho JPA.
Cải thiện chất lượng dịch vụ cho các ứng dụng .NET đang sử dụng SQL tĩnh
Data Studio pureQuery Runtime 2.1 cung cấp hỗ trợ để cải thiện tính ổn định, tính an toàn và tính dễ điều khiển của các ứng dụng .NET, bao gồm cả những ứng dụng được viết trong bất kỳ ngôn ngữ dựa trên .Net nào ví dụ như C# và VB.Net. Bạn hãy nâng cấp ứng dụng .Net hiện hữu với những điểm nối bật về SQL này.
- Bật chế độ bắt giữ (thành ON) trong xâu kết nối .Net
captureMode = on;pureQueryXML=path/filename:collection=collName;rootpackage=pkgName - Thực hiện tất cả các kiểm thử
- Sử dụng tiện ích DB2cap để liên kết và tạo ra các gói tĩnh từ SQL đã thu thập được
- Cấp các quyền thực thi
- Tắt chế độ bắt giữ (thành OFF) và đặt chế độ thực thi
(executionMode) ở trạng thái STATIC trong xâu kết nối
executionMode=STATIC:captureMode=OFF - Thực hiện tất cả các kiểm thử để kiểm tra các kết quả là đúng.
Thấu hiểu hơn các ứng dụng Java sử dụng SQL
Hãy xem SQL nào sẽ được tạo ra mà không cần chạy ứng dụng của bạn
Để sử dụng Data Studio Developer 1.2 cho các ứng dụng hiện hữu ở cửa sổ chính pureQuery, bạn đã phải chạy ứng dụng để nhìn thấy SQL đã được tạo ra và để xem nó ở chỗ nào trong mã nguồn. Với Data Studio Developer 2.1, bạn có thể tự động xem nhanh SQL trong ứng dụng của bạn mà không phải chạy ứng dụng. Bạn sẽ có khả năng nhìn thấy bất kỳ SQL được viết thành mã lệnh trong ứng dụng. Bạn có thể chạy ứng dụng để thu thập bất kỳ SQL nào còn lại.
Hãy theo các bước sau tại nơi cài đặt Data Studio Developer của bạn:
- Nhấn phím phải chuột trên myDSDPrj và chọn Show pureQuery outline.
- Tại cửa sổ chính pureQuery, nhấn vào nút Toggle Profile
- Chọn phiếu Database. Lưu ý rằng các câu lệnh Cập nhật và
Xóa mà chưa được thực hiện, sẽ hiện ra tại cửa sổ chính. Nhấp đúp
chuột vào DELETE statement để tới vị trí của nó trong tệp
Java. Trong hình ở dưới, bạn có thể thấy rằng nguồn Java phát sinh
lệnh DELETE là câu lệnh executeUpdate.
Hình 7. Xem nhanh tự động vào trong câu lệnh SQL – Phiếu Cơ sở dữ liệu
- Nhấn chuột vào phiếu Java. Mở rộng myDSDPrj và gói
có tên là db2jcc.example. Lưu ý rằng các câu lệnh DELETE và
UPDATE mà chưa được thực hiện, sẽ hiện ra trong cửa sổ chính. Lần
này, bạn nhấn đúp lên câu lệnh Update và tới vị trí của nó trong
tệp Java (trường hợp này sẽ tới câu lệnh JDBC được chuẩn bị sẵn).
Bạn lưu ý rằng vị trí thực thi cho câu lệnh được chuẩn bị sẵn cũng
được hiện ra tại lệnh executeUpdate của JDBC.
Hình 8. Nhìn nhanh tự động vào trong câu lệnh SQL – Phiếu Java
Nếu bạn thật sự đang chạy ứng dụng, độ chính xác của vị trí
của SQL được cải thiện. Hơn nũa, nó bao gồm bất kỳ SQL nào được xây dựng
động.
Bạn theo các bước sau tại Data Studio Developer :
- Mở TutMod.java và xóa dấu chú thích trước lệnh gọi basicUpdate trong phương thức main.
- Để chạy ứng dụng :
- Mở pdq.properties đặt captureMode thành ON và thêm
enableDynamicSQLReplacement thành false
pdq.captureMode=ON pdq.executionMode=DYNAMIC pdq.enableDynamicSQLReplacement=false - Chạy ứng dụng
- Mở pdq.properties đặt captureMode thành ON và thêm
enableDynamicSQLReplacement thành false
- Nhấn phím phải chuột trên myDSDPrj và chọn Show pureQuery outline.
- Nhấn vào phiếu Java. Mở rộng myDSDPrj và gói có tên
db2jcc.example. Lưu ý rằng gợi ý executeUpdate, hiện ra
trước đó, bây giờ được thay thế bằng câu lệnh SQL UPDATE thực tế.
Hình 9. Chạy ứng dụng để có độ chính xác cao hơn – Phiếu Java
Xác định SQL nào sẽ được tạo ra và được tạo ra từ đâu
Trước đây, cửa sổ chính pureQuery bị hạn chế ở từng dự án riêng lẻ, vì vậy bạn có thể chỉ nhìn thấy thông tin về SQL được tạo ra từ ứng dụng của bạn ở mức từng dự án. Đối với các ứng dụng trải trên nhiều dự án bạn khó có thể có một bức tranh đầy đủ.
Đóng tất cả các dự án trong không gian làm việc mà không thuộc về ứng dụng của bạn. Data Studio Developer 2.1 cung cấp cho bạn tất cả thông tin bạn cần về SQL mà ứng dụng của bạn sẽ tạo ra đối với cơ sở dữ liệu.
Trước khi bạn tiếp tục, chúng ta sẽ thêm một số dự án vào ứng dụng của bạn. Data Studio Developer bây giờ cho phép bạn tạo ra mã pureQuery theo khối lớn cho nhiều bảng.
Sinh mã từ dưới lên theo khối lớnTại Data Studio Developer phiên bản 1.2, bạn chỉ có thể sinh mã cho một bảng đơn. Tại phiên bản 2.1, bạn có thể sinh mã từ dưới lên nhanh chóng hơn hơn cho nhiều bảng.
- Tạo một dự án Java với tên là pdqBulkBottomUp.
- Chọn bảng DEPARTMENT và EMPLOYEE, nhấn phím phải chuột và chọn Generate pureQuery code.
- Đặt tên gói và chọn Generate annotated style. Nhấn
Next.
Hình 10. Sinh mã pureQuery từ hai bảng
- Đối với bảng DEPARTMENT, chọn phiếu SQL Statements. Chọn
Create row by parameters, và Create row by
object như hình ở dưới. Nhấn Finish.
Hình 11. Sinh mã pureQuery - Chọn câu lệnh SQL
- Bây giờ mã truy nhập dữ liệu có thể được sinh ra cho một số lớn bảng rất nhanh chóng! Chú ý rằng các câu lệnh CRUD của SQL được tạo ra riêng rẽ cho mỗi bảng; điều đó có nghĩa là, mối quan hệ giữa các bảng không được xem xét.
- Nhấn phím phải chuột trên dự án và chọn Show pureQuery
outline để đi sâu vào trong cơ sở dữ liệu và đi sâu vào
trong ứng dụng đối với mỗi lệnh SQL. Tìm câu trả lời cho các câu
hỏi như: SQL nào sử dụng bảng DEPARTMENT và nó được sử dụng ở đâu
trong mã Java?
Hình 12. SQL nào sử dụng một lược đồ hay bảng nhất định và nó được sử dụng ở đâu trong mã Java – Phiếu Cơ sở dữ liệu
- Nhấn vào phiếu Java; và như bạn muốn, tất cả các dự án đều được
nhìn thấy tại cửa sổ chính pureQuery. Bạn có thể đi sâu xuống để
tìm mối tương quan từ lớp Java tới SQL trên cơ sở dữ liệu trong
ứng dụng của bạn. Tìm câu trả lời các câu hỏi như: SQL nào được
lớp Java DepartmentData tạo ra và ở đâu?
Hình 13. Câu lệnh SQL được sinh ra bởi lớp Java và ở đâu - Phiếu Java
Trước đây, bạn có thể nhận
được thông tin về câu lệnh SQL nào sử dụng cột hay bảng cơ sở dữ liệu khi
sử dụng bộ lọc tại cửa sổ chính pureQuery. Dù bạn đang sử dụng APIs của
pureQuery hay có các ứng dụng hiện tại đang sử dụng JDBC hay khung công
tác, thì Data Studio Developer 2.1 cũng cho phép bạn tập trung vào SQL mà
bạn quan tâm bằng cách cho phép tăng cường lọc. Sử dụng khả năng này để
tìm ra câu lệnh SQL nào sử dụng một cột cụ thể và câu lệnh nào trong số
chúng là câu lệnh SELECT. Bạn cũng biết được những câu lệnh SQL nào sử
dụng một hàm nhất định.
- Nhấn vào nút Filter tại cửa sổ chính pureQuery như hình ở dưới.
- Nhập thông tin lọc (.*SELECT.*) làm mẫu lọc văn bản SQL,
rồi chọn OK.
(.*SELECT.*) - Bây giờ, bạn có thể nhìn thấy tất cả các câu lệnh SELECT từ ứng
dụng của bạn tại cửa sổ chính pureQuery sau khi lọc.
Hình 14. Khám phá câu lệnh SELECT nào do ứng dụng của bạn tạo ra
- Bây giờ, để thêm bộ lọc theo tên cột, bạn nhập giá trị lọc
<SCHEMA>.STAFF.ID. Bạn có thể nhìn thấy tất cả
các câu lệnh SELECT đang sử dụng cột ID trong bảng STAFF. Bạn có
thể thấy điều này thật sự giúp đỡ bạn khi phân tích tác động. Đối
với tên đối tượng cơ sở dữ liệu, bạn nhập giá trị
<schema>.STAFF.ID. Bạn quan sát tất cả các câu
lệnh SELECT đang sử dụng cột ID từ bảng STAFF.
Hình 15. Khám phá câu lệnh SELECT nào sử dụng cột ID
Tìm xem câu lệnh SQL nào nằm trong ứng dụng của bạn và câu lệnh nào được gửi tới cơ sở dữ liệu
Bạn xem cửa sổ chính pureQuery để tìm mối tương quan giữa
SQL trong ứng dụng với SQL đã được gửi tới cơ sở dữ liệu. Chúng ta hãy
quan sát SQL mà bạn thay thế trước đó
Bạn theo các bước đơn giản sau
trong Data Studio :
- Trong phiếu Cơ sở dữ liệu của cửa sổ chính pureQuery, mở rộng câu
lệnh SELECT. Lưu ý rằng SQL được gửi tới cơ sở dữ liệu
chính là SQL mà bạn đã thay thế ở bước trên.
Hình 16. Xem SQL trong ứng dụng và SQL đã được gửi tới cơ sở dữ liệu
Tìm nơi SQL được định nghĩa và được thực hiện
Data Studio Developer 1.2 cho thấy
những vị trí gần đúng của các câu lệnh SQL trong mã nguồn dựa vào một ngăn
xếp các vết. Bây giờ Data Studio Developer 2.1 cung cấp thông tin chính
xác hơn cho vị trí của SQL trong ứng dụng của bạn. Bạn đang phân vân liệu
SQL được định nghĩa và được thực hiện ở đâu ? Tất cả các tuyến mã lệnh mà
gọi cùng một SQL là gì ?
Hãy thử các bước đơn giản sau tại nơi cài
đặt Data Studio Developer của bạn.
- Nhấn vào phiếu Java tại cửa sổ chính pureQuery và mở rộng câu lệnh SELECT. Lưu ý rằng bạn có thể nhìn thấy vị trí nơi SQL được xác định (preparedStatement) và nơi nó được thực hiện (executeQuery).
- Bạn lưu ý rằng các câu lệnh Xóa trỏ tới chính dòng lệnh nơi SQL
được chuẩn bị và được thực hiện.
Hình 17. Xem SQL được định nghĩa ở đâu và được thực thi ở đâu
Xem các giá trị của tập hợp kết quả chảy xuyên qua ứng dụng Java như thế nào.
Biết thêm nhiều thông tin về việc ứng dụng Java của bạn sử dụng SQL như thế nào. Giá trị cột lấy ra được sử dụng ở đâu? Chúng được gửi quay trở lại cơ sở dữ liệu? Chúng có được in ra không ? Nếu bạn có mã nguồn, bạn có thể truy lần xem các giá trị đang chảy xuyên qua ứng dụng của bạn như thế nào, một khi chúng được trả về trong một tập hợp kết quả.
- Mở DepartmentData.java, nhấn chuột phải trên DEPTNO và chọn Source Code Analysis, Analyze column value Dependency.
- Cửa sổ phân tích pureQuery cho thấy giá trị chảy xuyên qua ứng
dụng như thế nào. Lưu ý rằng các biểu tượng của cơ sở dữ liệu sáng
lên ở nơi giá trị được lấy ra từ cơ sở dữ liệu và được cập nhật
tới cơ sở dữ liệu.
Hình 18. Xem giá trị cột DEPTNO chảy xuyên qua ứng dụng Java như thế nào
Tạo ra và duyệt tính hợp lệ các tệp bindProps triển khai được
Trước đây, các thuộc tính liên kết dùng cho việc triển khai bằng dòng lệnh được tạo ra thủ công. Không có cách nào để chỉ ra nếu các mục bị sai và bạn phải đợi cho đến lúc các lỗi được báo cáo khi triển khai. Các chuyên viên phát triển không có khả năng để dễ dàng kiểm thử các triển khai sử dụng các tệp jar, ear hay war.
Bạn sẵn sàng để triển khai chưa? Data Studio Developer 2.1 tăng tốc độ triển khai một cách đáng kể. Hãy tạo một bindProps triển khai được, bảo trì một cách tập trung nhưng có thể được chia sẻ dùng chung trong toàn tổ chức. Data Studio Developer 2.1 cho phép chuyên viên phát triển kiểm tra các bước này để bảo đảm rằng ứng dụng sẵn sàng để triển khai.
- Nhấn chuột phải trên Default.bindProps và chọn Add
remove entries. Chọn com.pdqdemo.EmployeeData và
com.pdqdemo.DepartmentData. Hình ở dưới cho ví dụ để
bạn biết các mục có thể được dễ dàng quản lý như thế nào.
Hình 19. Quản lý dễ dàng các thuộc tính của SQL tĩnh
- Tiếp theo, để kiểm thử liên kết, nhấn phím phải chuột trên Default.bindProps và chọn bind.
Bây giờ bạn đã kiểm tra được rằng bindProps đã sẵn sàng, tạo tệp nén jar của ứng dụng để triển khai.
Liên kết các tệp jar triển khai được
Một khi ứng dụng được phát triển và được kiểm thử, chúng được nén thành tệp jar để triển khai. Sau đó tệp jar được liên kết tại dòng lệnh. Một lần nữa Data Studio Developer 2.1 lại cho phép các chuyên viên phát triển kiểm thử các bước này để bảo đảm ứng dụng có thể triển khai được. Bây giờ bạn có thể hưởng lợi từ tính năng thông minh, liên kết sẽ được thực hiện chỉ khi cần thiết. Bạn tránh được những liên kết không cần thiết khi triển khai lại một tệp jar khi mà chỉ một tập con của các ứng dụng trong đó có thay đổi.
- Jar các tệp tại thư mục src và tệp bindprops tại thư mục pureQuery từ dự án pdqBulkBottomUp..
- Để liên kết các tệp Jar, nhấn phím phải chuột trên tệp Jar và chọn pureQuery->Bind. Các mục được liệt kê trong bindProps sẽ được liên kết.
Nhiều thông tin hơn về các lỗi liên kết được cung cấp
Trong Data Studio phiên bản 1.x, các thất bại khi liên kết chỉ hiển thị thông tin rất hạn chế. Bạn không có khả năng xác định gói nào gây ra thất bại liên kết. Sự thiếu thông tin này làm cho việc sửa các vấn đề liên kết trở nên khó hơn. Vấn đề thậm chí còn trở nên khó thêm bởi vì nhiều gói chứa đựng nhiều câu lệnh SQL được liên kết chủ yếu ở lúc triển khai.
Bây giờ Data Studio Developer 2.1 cải thiện một cách đáng kể thông tin được cung cấp khi những lỗi liên kết xuất hiện. Phiên bản 2.1 cho phép bạn có nhiều phản hồi hơn về những gói bị thất bại khi liên kết và để xác định nguyên nhân của thất bại nhờ các công cụ của Data Studio Developer và các công cụ dòng lệnh pureQuery runtime.
Bây giờ, các liên kết không cần thiết được tránh khi triển khai lại tệp jar nếu chỉ một tập con các ứng dụng trong đó có thay đổi.
Tích hợp giữa các công cụ SQL và các công cụ Java nhiều hơn nữa
Nếu bạn là một quản trị viên cơ sở dữ liệu sử dụng các công cụ tạo SQL để tạo ra các câu lệnh SQL hay đơn giản chỉ sử dụng bộ biên tập SQL, thì bây giờ bạn có thể dễ dàng tạo mã pureQuery. Từ bộ tạo SQL, bạn lưu SQL bằng tệp .sql. Sau đó bạn chỉ nhấn phím phải chuột trên tệp .sql hay trên bộ biên tập SQL đang mở và chọn Generate pureQuery code. Thủ thuật cho phép bạn tạo ra một cách hiệu quả tầng truy nhập dữ liệu pureQuery cho tất cả các câu lệnh SQL trong tệp của bạn.
Nếu bạn là chuyên viên phát triển Java và có tệp .sql từ các quản trị viên cơ sở dữ liệu, bạn có thể dễ dàng tạo mã pureQuery cho tất cả SQL trong tệp này bên trong dự án dùng pureQuery của mình. Bạn cũng có thể sử dụng điều này để dễ dàng di trú chuyển từ các ứng dụng JDBC hiện hữu hay các ứng dụng đang sử dụng khung công tác thành ứng dụng với API của pureQuery. Bạn chỉ cần xuất SQL từ cửa sổ chính pureQuery thành một tệp .sql trong dự án của bạn hay mở tệp đó trong bộ biên tập SQL. Sau đó nhấn phím phải chuột trên tệp .sql hay mở nó ra trong bộ biên tập SQL và chọn Generate pureQuery code.
Chọn vị trí của runtime pureQuery để sử dụng trong Data Studio Developer.
Trước khi có Data Studio Developer 1.2, bạn không thể dễ dàng sử dụng pureQuery runtime đã được cài đặt mà không phải thao tác thủ công nhiều bước. Hãy trỏ Data Studio Developer 2.1 tới vị trí cài đặt runtime pureQuery bằng các bước sau:
- Từ cửa sổ mức đỉnh Window->preferences bạn chọn Data Management -> SQL Development -> pureQuery.
- Nhập vị trí nơi mà các tệp jar của pureQuery runtime được lưu trữ
vào mục pureQuery Runtime Location.
Chia sẻ thông tin kết nối cơ sở dữ liệu tới mọi công cụ
Trước khi có Data Studio Developer 1.2, bạn phải tạo các kết nối cơ sở dữ liệu một cách riêng rẽ trong tất cả các công cụ dựa trên Eclipse của Data Studio Developer. Bây giờ, bạn có thể thực hiện các định nghĩa cơ sở dữ liệu trong một công cụ và chia sẻ chúng với những công cụ khác. Hãy nhập các kết nối được chia sẻ và hưởng lợi khi sử dụng lại!
Các kết nối hiện hữu của bạn từ các không gian làm việc tại các phiên bản cũ của Data Studio sẽ được di chuyển tự động khi không gian làm việc được mở tại Data Studio Developer phiên bản 2.1. Bạn chỉ cần chọn Windows->Reset perspective để đặt lại phối cảnh của Data Studio Developer 2.1. Để di chuyển runtime pureQuery từ các dự án hiện hữu của bạn, bạn sử dụng trình đơn Upgrade project trên dự án của mình. Tham khảo mục <note pointer> để có thêm chi tiết về thao tác xử lý này.
Giảm bớt hay loại trừ các nguy cơ “mũi tiêm SQL” đối với các ứng dụng cơ sở dữ liệu với Java
Hành động trước để giảm bớt nguy cơ mũi tiêm SQL
Khi phát lệnh SQL tới cơ sở dữ liệu, hạn chế chỉ dùng các SQL quen biết đã được chấp nhận từ trong tệp pdqxml đã thu thập được.
- Chạy ứng dụng của bạn, sử dụng các thuộc tính sau đây trong
pdq.properties. Tất cả SQL đã chạy sẽ được bắt giữ lại trong tệp
capture.pdqxml trong thư mục pureQuery
captureMode=ON executeMode=DYNAMIC pureQueryXML=pureQueryFolder/capture.pdqxml capturedOnly=false - Khi bạn hoàn thành việc thu thập tất cả các SQL từ nhiều lần chạy
ứng dụng của mình thì bạn đã sẵn sàng để hạn chế SQL. Mở
pdq.properties và đặt các thuộc tính sau đây:
captureMode=OFF capturedOnly=true - Bây giờ, chỉ có các lệnh SQL đã thu thập được mới thực hiện được, bất kể là động hay tĩnh.
Cải thiện năng suất của chuyên viên phát triển một cách
đáng kể để xây dựng các ứng dụng sẵn sàng áp dụng thực tế. Tăng năng lực
cho chuyên viên phát triển để tạo ra các ứng dụng tốt hơn và hợp tác với
các quản trị viên cơ sở dữ liệu để giảm bớt các vấn đề hiệu năng nghiêm
trọng trong áp dụng thực tế. Sử dụng SQL tĩnh để giảm bớt tỷ lệ sử dụng
CPU/giao dịch trên các máy chủ của DB2 và có tăng trưởng thêm từ các đầu
tư phần cứng và phần mềm hiện tại.
Bảng 1 tổng kết hỗ trợ các đặc tính của phiên bản 2.1 theo các nền cơ sở dữ liệu:
Bảng 1. Hỗ trợ đặc tính theo nền cơ sở dữ liệu
| Đặc tính | DB2 cho LUW | IDS | DB2 cho z/OS | DB2 cho iSeries |
Giúp cho các chuyên viên phát triển có thêm thông tin để tập trung
vào nỗ lực tinh chỉnh SQL
| Có | Có | Có | Có |
Giúp cho các chuyên viên phát triển có thêm thông tin để tập
trung vào nỗ lực tinh chỉnh SQL
| Có | Không | Có | Có |
| Cải thiện chất lượng dịch vụ cho OpenJPA thông qua SQL tĩnh | Có | Không | Có | Có |
Thấu hiểu hơn các ứng dụng Java sử dụng SQL
| Có | Có | Có | Có |
Cải thiện năng suất và sự hợp tác giữa các chuyên viên phát triển
và các quản trị viên cơ sở dữ liệu – các đặc tính về SQL tĩnh
| Có | Không | Có | Có |
Cải thiện năng suất và sự hợp tác giữa các chuyên viên phát triển
và các quản trị viên cơ sở dữ liệu – Các đặc tính về SQL không tĩnh
| Có | Có | Có | Có |
| Giảm bớt hay loại trừ các nguy cơ “mũi tiêm SQL” đối với các ứng dụng cơ sở dữ liệu với Java | Có | Có | Có | Có |
Không có lý do gì để không sử dụng Data Studio Developer và Data StudiopureQuery Runtime 2.1. Sau đây là các thông tin về tải tư liệu
| Mô tả | Tên | Kích thước | Phương thức tải |
|---|---|---|---|
| Các đoạn lệnh mẫu cho bài báo này | TutMod.java | 11KB | HTTP |
| Các đoạn lệnh mẫu cho bài báo này | Util.java | 11KB | HTTP |
Học tập
- Lấy các tài liệu cần thiết để nâng cao kỹ
năng của bạn trên Data Studio tại Vùng các bài viết về Data Studio
trên developerWorks..
-
Các
đoạn video về các điểm mới của Data Studio 2.1: Lấy thêm các thông
tin chi tiết về đặc tính mới nhất của Data Studio
- "Những điểm mới và lý thú của Data
Studio Developer phiên bản 1.2 của IBM" (developerWorks, tháng 8,
2008): Khám phá các đặc tính trong phiên bản, các đặc tính này có thể làm
cho công việc của bạn được thực hiện nhanh chóng và dễ dàng hơn, bao gồm
các khả năng độc nhất vô nhị về cô lập vấn đề và phân tích tác động, khả
năng nâng lên SQL tĩnh cho bất kỳ ứng dụng JDBC hiện hữu nào, tăng cường
sự phát triển và quản trị SQL tĩnh, dịch vụ Web và nhiều vấn đề khác
nữa.
Lấy sản phẩm và công nghệ
- Tải IBM Data Studio Developer 2.1
để thử các kịch bản được mô tả trong bài báo này.
- Bây giờ bạn có
thể sử dụng miễn phí DB2. Tải DB2 Express-C, phiên bản miễn
phí của DB2 Express Edition dùng cho cộng đồng, có cùng những đặc tính dữ
liệu cốt lõi như DB2 Express Edition và cung cấp một cơ sở vững chắc để
xây dựng và triển khai các ứng dụng.
- Tải Các phiên bản đánh giá của các sản
phẩm của IBM và hãy thử dùng các công cụ phát triển ứng dụng và
các sản phẩm phần mềm trung gian (middleware) thuộc họ quản lý thông tin
của IBM, Lotus®, Rational®, Tivoli® và
WebSphere®.
Thảo luận
-
Không gian Cộng đồng Data
Studio trên developerWorks.
-
Blog của nhóm Data Studio trên
developerWorks.
- Hãy duyệt kho sách công nghệ để tìm
sách về đề tài này và các đề tài kỹ thuật khác.
Sonali Surange là người lãnh đạo nhóm công cụ pureQuery của Data Studio IBM, thuộc tổ chức Công cụ của máy chủ dữ liệu của IBM tại Phòng thí nghiệm Thung lũng Silicon của IBM, tại San Jose, California. Trước đó Sonali đã lãnh đạo công tác phát triển một vài bộ phận quan trọng của phần công cụ của Visual Studio .Net cho cơ sở dữ liệu của IBM

Zeus Courtois là kỹ sư trong đội Data Studio Development, làm việc về các công cụ của pureQuery tại Phòng thí nghiệm Thung lũng Silicon của IBM. Trước khi gia nhập đội phát triển, Zeus là thực tập viên trong đội Data Studio Enablement. Zeus có bằng Thạc sĩ về Hệ thống thông tin của Trường Đại học Quốc tế A&M, bang Texas