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ư ý