Chức năng click vào thanh tìm kiếm của facebook

Mình mới tự học java web, nên làm lại cái chức năng này để ôn lại bài, mong mọi người chỉ giúp, góp ý hướng đi của mình có đúng ko.

1, Ta thấy khi click vào ô tìm kiếm thì sẽ hiện ra tối đa 6 bản ghi mới nhất của bảng Search,
mà đầu tiên sẽ tạo trước 3 bảng là User, Fanpage và Group đều có trường id vs name.

  • Riêng bảng Search sẽ có: id, userid (id của user đang đăng nhập), userSearchId, groupSearchId, fanpageSearchId.

2, Mình dùng hibernate để lấy dữ liệu nên class Search sẽ cấu hình như thế này :

3, ở class SearchDao sẽ có 1 hàm lấy ra 6 bản ghi đầu tiên của bảng search:

public class SearchDAO {
	@SuppressWarnings("unchecked")
	public static List<Search> ListSearch(int userId) {
		List<Search> prs = new ArrayList<Search>();
		Session session = HibernateUtil.getSessionFactory().openSession();
		try {
			Query query;
			String hql = "from Search";
			query = session.createQuery(hql).setMaxResults(6);
			prs = query.list();
		} catch (Exception e) {

		} finally {
			session.close();
		}
		return prs;
	}
}

4, ở phần view index.jsp sẽ dùng angular để bind dữ liệu ra khi click vào ô input:

hàm getListSearch(6) sẽ truyền vào userId đang đăng nhập, mh đã set cứng là 6.

var app = angular.module('myApp', []);
app.controller('searchController',function($scope, $http, $rootScope, $location) {
	$scope.getListSearch = function(userId) {
		$http(
		{
			method : 'GET',
			url : 'http://localhost:8888/searchfb/getListSearch?userId='+userId,
		})
		.then(
			function(response) {
				console.log(response)
				$scope.listSearch = response.data;
			});
	}
})

5, run project :

Dữ liệu của bảng search:

cuối cùng cũng đã chạy như ý :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?