Quá trình phân tích phụ thuộc cho Hibernate

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE luận văn ths máy tính 84801 (Trang 26 - 29)

Hình 2.12 mô tả các bước phân tích phụ thuộc cho Hibernate [2]. Đầu tiên, bộ phân tích sẽ xác định xem mã nguồn có sử dụng Hibernate hay không bằng cách tìm tệp cấu hình hibernate.hbm.xml. Tiếp theo, bộ phân tích sẽ đọc các thẻ có trong tệp cấu hình và chỉ ra các thẻ XML, mỗi thẻ XML có thể khai báo một tệp ánh xạ XML khác hoặc một lớp Java. Sau đó, bộ phân tích sẽ xác định tệp cấu hình ánh xạ theo cách nào và phân tích theo cách tương ứng. Mỗi nút thể hiện cho bảng, cột của cơ sở dữ liệu được tạo và thêm vào cây AST hiện tại. Các

Mã nguồn 2.6. Một phần tệp hibernate.cfg.xml <hibernate-configuration> <session-factory> <property name=“hibernate.connection.url”> jdbc:mysql://localhost:3306/testdb <property name=“hibernate.connection.username”> root </property> <property name=“hibernate.connection.password”> 1234567890 </property> <mapping resource=“Employee.hbm.xml” /> </session-factory> </hibernate-configuration> Mã nguồn 2.7. Tệp ánh xạ Employee.hbm.xml <hibernate-mapping>

<class name=“Employee” table=“EMPLOYEE”> <meta attribute=“class-description”>

</meta>

<id name=“id” type=“int” column=“id”> <generator class=“native”/>

</id>

<property name=“firstName” column=“first_name” type=“string”/> <property name=“lastName” column=“last_name” type=“string”/> <property name=“salary” column=“salary” type=“int”/>

</class>

</hibernate-mapping>

Mã nguồn 2.6 là một ví dụ về tệp cấu hình trong Hibernate, bộ phân tích sẽ tìm tất cả các thẻ <mapping> chứa thông tin ánh xạ từ cơ sở dữ liệu với lớp trong Java. Với phương pháp ánh xạ bằng tệp XML, thẻ <mapping> sử dụng thuộc tính là “resource” cùng với tên tệp XML chứa thông tin ánh xạ. Còn với phương pháp Annotation, thuộc tính là “class” và tên lớp Java với đầy đủ

Trong Mã nguồn 2.7 của tệp ánh xạ Employee.hbm.xml, thực thể Employee

được ánh xạ với bảng EMPLOYEE trong thẻ <class>. Khóa chính id được ánh xạ với thuộc tính id trong thẻ <id>, first_name với firstName, last_name với

lastName, salary với salary trong thẻ <property>.

Bộ phân tích Hibernate được chia thành hai phần: phân tích câu truy vấn và hàm phân tích thực thể. Hibernate đã xây dựng sẵn các phương thức tương tác với cơ sở dữ liệu bằng thực thể, danh sách các phương thức cho trong Bảng 2.2 [2]. Tham số truyền vào các hàm này có thể là tên của thực thể Java dưới dạng “package.name”. Đi cùng với tên thực thể là đối tượng Java chứa các giá trị cần gửi cho cơ sở dữ liệu, hoặc chỉ cần gửi đối tượng Java. Các phương thức này có các đặc điểm khá riêng biệt nên chúng dễ được tìm thấy bằng cách quét qua từng câu lệnh. Sau đó phân tích các tham số truyền vào phương thức này và xác định kiểu thực thể của tham số.

Bảng 2.2. Các phương thức truy xuất CSDL có sẵn của Hibernate

Phƣơng thức Mô tả

delete(Object object)

delete(String entityName, Object object) Xóa một bản ghi get(Class clazz, Serializable id)

get(String entityName, Serializable id) Lấy thông tin bản ghi load(Class clazz, Serializable id)

load(Object object, Serializable id) Lấy thông tin bản ghi merge(Object object)

merge(String entityName, Object object) Cập nhật bản ghi save(Object object)

save(String entityName, Object object) Lưu bản ghi update(Object object)

update(String entityName, Object object) Cập nhật bản ghi persist(Object object)

2.4 Quản lý phiên bản

Bộ so sánh mã nguồn [2] nhận đầu vào là phiên bản mã nguồn đã được thay đổi, một trình kiểm tra sẽ quét toàn bộ mã nguồn mới, so sánh với mã nguồn gốc để tìm ra những tệp có nội dung thay đổi hoặc có thể là tệp thêm vào hoặc tệp bị xóa. Với tệp thay đổi, bộ tiền xử lý tương ứng với mã nguồn tệp đó sẽ được sử dụng tạo cây AST mới. Sau đó, thông tin nút gốc được sử dụng để định danh trên cây AST của mã nguồn gốc. Tiếp theo, một trình duyệt cây sẽ duyệt hậu thứ tự được thực hiện và tìm ra các nút được thêm mới, xóa đi, v.v. Đầu ra của bộ so sánh mã nguồn là tệp thay đổi để cung cấp cho việc phân tích ảnh hưởng sự thay đổi.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE luận văn ths máy tính 84801 (Trang 26 - 29)

Tải bản đầy đủ (PDF)

(58 trang)