package smile.fu.hibernatetest;
import static org.junit.Assert.*;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.Test;
import smile.fu.entity.User;
public class hibernate_bqc {
@Test
public void testBQC() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
// 1.指定对哪个表进行操作
// Criteria criteria = session.createCriteria(User.class);
// criteria.add(Restrictions.eq("password","9"));
// criteria.add(Restrictions.like("address", "%江西%"));
// 模糊查询匹配方式
// criteria.add(Restrictions.like("address", "江西", MatchMode.ANYWHERE));
// 添加排序规则
// criteria.addOrder(Order.desc("password"));
// 分页 查询前10条数据
// criteria.setFirstResult(0);//开始位置: (当前页-1)*每页大小
// criteria.setMaxResults(10);
// criteria.add()
// 2.设置操作 得到行数 count
// criteria.setProjection(Projections.rowCount());
// Object object = criteria.uniqueResult();
// 不可以直接从Object类型转换成int;应该先从Object转换成Long类型再转换成int类型
// int count = (int) object;
// 正确方式
// Long lobj = (Long) object;
// int count = lobj.intValue();
// System.out.println(count);
// List<User> userList = criteria.list();
// for (User user : userList) {
// System.out.println(user.toString());
// }
// 离线查询
// 1.创建对象,不用session,直接调用DetachedCriteria的静态方法
// DetachedCriteria detachedCriteria=DetachedCriteria.forClass(User.class);
// Criteria criteria=detachedCriteria.getExecutableCriteria(session);
// List<User> list= criteria.list();
// for (User user : list) {
// System.out.println(user.toString());
// }
transaction.commit();
session.close();
sessionFactory.close();
}
}
网友评论