persondaoimpl.java

来自「java 框架核心技术编程」· Java 代码 · 共 69 行

JAVA
69
字号
package org.lxh.impl;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.lxh.dao.PersonDAO;
import org.lxh.vo.Person;

public class PersonDAOImpl implements PersonDAO {
	private Session session = null;

	public PersonDAOImpl() {
		this.session = new Configuration().configure().buildSessionFactory()
				.openSession();
	}

	public int getAllCount() throws Exception {
		int count = 0;
		String hql = "SELECT COUNT(p.id) from Person AS p";
		Query q = this.session.createQuery(hql);
		List all = q.list();
		if (all.size() > 0) {
			count = (Integer) all.get(0);
		}
		return count;
	}

	public int getByLikeCount(String cond) throws Exception {
		int count = 0;
		String hql = "SELECT COUNT(p.id) from Person AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
		Query q = this.session.createQuery(hql);
		q.setString(0, "%" + cond + "%");
		q.setString(1, "%" + cond + "%");
		List all = q.list();
		if (all.size() > 0) {
			count = (Integer) all.get(0);
		}
		return count;
	}

	public List queryAll(int currentPage, int lineSize) throws Exception {
		List<Person> all = new ArrayList<Person>();
		String hql = "FROM Person AS p";
		Query q = this.session.createQuery(hql);
		q.setFirstResult((currentPage - 1) * lineSize);
		q.setMaxResults(lineSize);
		all = q.list();
		this.session.close();
		return all;
	}

	public List queryByLike(String cond, int currentPage, int lineSize)
			throws Exception {
		List<Person> all = new ArrayList<Person>();
		String hql = "FROM Person AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
		Query q = this.session.createQuery(hql);
		q.setString(0, "%" + cond + "%");
		q.setString(1, "%" + cond + "%");
		q.setFirstResult((currentPage - 1) * lineSize);
		q.setMaxResults(lineSize);
		all = q.list();
		this.session.close();
		return all;
	}
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?