虽然思维方式更重要但是我觉得学习的是使用方法直奔主题 学会了方法更容易进行灵活运用
这里只是简单写了hql的用法 至于hql语法 去看我的下一篇博客
上代码
使用?占位符的方法
//条件查询 ?占位符
@Test
public void TestFun1(){
//这里是我封装好的工具直接获得session对象
Session session = HibernateUtil.getSession();
//开始事务
Transaction transaction = session.beginTransaction();
//hql 语法 中的查找用的是类名和类的属性名
String hql = "from Student where name = ?";
//通过session获得query对象
Query query = session.createQuery(hql);
//hql占位符是从0开始的 填充?占位符
query.setParameter(0,"5555");
//查询
List<Student> list = query.list();
//提交事务
transaction.commit();
}
使用字符串占位符的方法
//条件查询 字符串占位符
@Test
public void TestFun2(){
//这里是我封装好的工具直接获得session对象
Session session = HibernateUtil.getSession();
//开始事务
Transaction transaction = session.beginTransaction();
//hql 语法 中的查找用的是类名和类的属性名
String hql = "from Student where name = :name";
//通过session获得query对象
Query query = session.createQuery(hql);
//hql字符串占位符这里就没有什么顺序 就是根据自己用的什么字符串去填充
//建议使用见名思义的方法进行命名字符串
query.setParameter("name","5555");
//查询
List<Student> list = query.list();
// 提交事务
transaction.commit();
}
分页查询
//分页查询
@Test
public void TestFun3(){
//这里是我封装好的工具直接获得session对象
Session session = HibernateUtil.getSession();
//开始事务
Transaction transaction = session.beginTransaction();
//hql 语法 中的查找用的是类名和类的属性名
String hql = "from Student";
//通过session获得query对象
Query query = session.createQuery(hql);
//从0开始,开始的位置
query.setFirstResult(0);
//找的个数
query.setMaxResults(2);
//查询
List list = query.list();
//提交事务
transaction.commit();
}