Hibernate createCriteria、createQuery和createSQLQuery函数之间的差异
有人能告诉我Hibernate和Hibernate的区别吗 创建标准 createQuery createSQLQueryHibernate createCriteria、createQuery和createSQLQuery函数之间的差异,hibernate,Hibernate,有人能告诉我Hibernate和Hibernate的区别吗 创建标准 createQuery createSQLQuery 有谁能告诉我这三个函数返回了什么数据吗,c.q.请给我一个适当而简单的链接来研究这些Hibernate函数?要在Hibernate ORM框架中创建查询,有三种不同的类型。以下是创建查询实例的三种方法: session.createQuery session.createSQLQuery session.createCriteria 详细查看每个类别的详细信息 Sessio
有谁能告诉我这三个函数返回了什么数据吗,c.q.请给我一个适当而简单的链接来研究这些Hibernate函数?要在Hibernate ORM框架中创建查询,有三种不同的类型。以下是创建查询实例的三种方法: session.createQuery session.createSQLQuery session.createCriteria 详细查看每个类别的详细信息
Session.createQuery()
createQuery方法使用HQL语法创建查询对象。例如:
Query query = session.createQuery("from Student s where s.name like 'k%'");
Query query = session.createSQLQuery("Select * from Student");
createSQLQuery方法使用本机SQL语法创建查询对象。例如:
Query query = session.createQuery("from Student s where s.name like 'k%'");
Query query = session.createSQLQuery("Select * from Student");
createCriteria方法创建用于设置查询参数的Criteria对象。对于那些不想亲自编写查询的人来说,这是一个更有用的特性。可以使用CriteriaAPI指定任何类型的复杂语法
Criteria criteria = session.createCriteria(Student.class);
例如:
Query query = session.createQuery("from Student");
List list=quey.list();
Query query = session.createQuery("update Student where studentid=9");
int result=query.executeUpdate();
Query query = session.createQuery("delete Student where studentid="+ studentId);
int result=query.executeUpdate();
Query query = session.createQuery("insert into Student where studentid="+ studentId);
int result=query.executeUpdate();
createSQLQuery->可以使用SQL创建查询,并可以执行CRUD操作
session.createCriteria->可以使用Criteria API创建查询,并且只能执行读取操作
createSQLQuery-用于本机sql查询,由您使用jdbc驱动程序cfg或其他选择
createQuery-用于hibernate查询,它为您提供独立的查询,使您能够使用API在许多数据库上运行该查询,并具有其他更多优点
createCriteria-由于其简单性,最好用于数据库上的简单查询
我希望这对你有帮助
------------------------
PERSON
------------------------
**DB_Column**| **POJO**
PERSON_ID | personID
------------------------
createQuery
您正在使用pojo字段。使用HQL语法
Query query = session.createQuery("from Person s where s.personID like 'A%'");
// returns:
List<Person> persons = query.list();
createSQLQuery
您正在使用本机| DB字段。
在谷歌搜索了一些网站后,知道这也会清除缓存,因为hibernate不知道你执行了什么
Query query = session.createSQLQuery("select s.* from Person s where s.person_ID like 'A%'");
// returns:
List<Object[]> persons = query.list();.
创建标准
使用用于设置查询的Criteria对象创建sql查询
参数。
在切换数据库时非常有用。
只读查询
Criteria criteria = session.createCriteria(Person.class);
criteria.add(Restrictions.like("personId", "A%"));
List<Person> persons = criteria .list();
用谷歌搜索Hibernate文档怎么样?你们有更简单易懂的教程吗。我不太擅长java和hibernate。你在谷歌上搜索过hibernate文档吗?你读过核心参考手册吗?我没有读核心参考手册。它在哪里?你有链接吗?哦,别这样。谷歌的Hibernate文档。单击第一个结果。查看页面中表格的第二个单元格。它是由Hibernate核心参考手册编写的。那么session.createQuery和session.createSQLQuery之间的区别是什么?请详细描述你的回答,哪一个更有用,或者在什么情况下使用它们?这很好。这有帮助。
Criteria criteria = session.createCriteria(Person.class);
criteria.add(Restrictions.like("personId", "A%"));
List<Person> persons = criteria .list();