Java 如何使用hibernate获取表中的所有数据?
get方法是获取一个。Java 如何使用hibernate获取表中的所有数据?,java,spring,hibernate,jsp,Java,Spring,Hibernate,Jsp,get方法是获取一个。 我想获取jsp页面的所有数据。尝试以下方法从表中获取所有行 public Service getServiceData(){ return (Service)ServiceDaoImpl.getSession().get(Service.class, new Integer(1)); } @SuppressWarnings(“未选中”) 公共列表服务getServiceData(){ 返回ServiceDaoImpl.getSession().createQue
我想获取jsp页面的所有数据。尝试以下方法从表中获取所有行
public Service getServiceData(){
return (Service)ServiceDaoImpl.getSession().get(Service.class, new Integer(1));
}
@SuppressWarnings(“未选中”)
公共列表服务getServiceData(){
返回ServiceDaoImpl.getSession().createQuery(“来自服务”).list();
}
尝试下面的一段代码,并用实体类替换实体
@SuppressWarnings("unchecked")
public List<Service> Service getServiceData() {
return ServiceDaoImpl.getSession().createQuery("from Service").list();
}
@SuppressWarnings(“未选中”)
公共列表getAlldata(){
尝试
{
返回sessionFactory.getCurrentSession().createCriteria(Entity.class).list();
}捕获(例外e){
返回新的ArrayList();
}
}
公共列表getServiceAll(){
返回ServiceDaoImpl.getSession().createCriteria(Service.class.list());
}
Configuration cfg=新配置();
configure(“hibernate.cfg.xml”)
对于Hibernate 5,不推荐使用
createCriteria
,请使用以下内容
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
/* Selecting all objects(records) start_______________________ */
Query qry = session.createQuery("from Product p");
List l =qry.list();
System.out.println("Total Number Of Records : "+l.size());
Iterator it = l.iterator();
while(it.hasNext())
{
Object o = (Object)it.next();
Product p = (Product)o;
System.out.println("Product id : "+p.getProductId());
System.out.println("Product Name : "+p.getProName());
System.out.println("Product Price : "+p.getPrice());
System.out.println("----------------------");
}
session.close();
factory.close();
私有静态列表loadAllData(类类型,会话){
CriteriaBuilder=session.getCriteriaBuilder();
CriteriaQuery criteria=builder.createQuery(类型);
标准。来源(类型);
List data=session.createQuery(条件).getResultList();
返回数据;
}
用法
Session Session=HibernateUtils.getSession();
List users=loadAllData(User.class,session);
因为List List=session.createCriteria(Entity.class.List()代码>
不赞成,
您可以使用CriteriaBuilder()
try(Session Session=sessionFactory.openSession()){
//创建标准生成器
CriteriaBuilder=session.getCriteriaBuilder();
//创建标准查询
CriteriaQuery criteria=builder.createQuery(Entity.class);
//指定条件根
标准。来源(实体。类别);
//执行查询
List entityList=session.createQuery(条件).getResultList();
对于(实体e:entityList){
//加载数据
}
}
单击查看github示例。您可以根据问题向我显示链接或示例吗?ServiceDaoImpl.getSession().createQuery(“来自服务”).list()
。此外,查询还可以是从服务S中选择S
。两个查询都正确。您可以删除session.close()如果您使用的是使用@Transactional
或xml的spring事务管理,则代码>也是。错误:类型不匹配:无法从服务转换为列表此方法在调用use List List=ServiceDaoImpl.getServiceData()的方法处返回列表迭代这个列表您返回的是实体,但您的方法签名声明您的函数将返回一个列表,因为它不会编译。我认为您的意思是“返回列表”;从createQuery(“从产品p”)中更好;对于Hibernate 5,不推荐使用createCriteria
。使用@Babu的解决方案。这个通用方法写得很好
public List<Service> getServiceAll(){
return ServiceDaoImpl.getSession().createCriteria(Service.class).list();
}
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
/* Selecting all objects(records) start_______________________ */
Query qry = session.createQuery("from Product p");
List l =qry.list();
System.out.println("Total Number Of Records : "+l.size());
Iterator it = l.iterator();
while(it.hasNext())
{
Object o = (Object)it.next();
Product p = (Product)o;
System.out.println("Product id : "+p.getProductId());
System.out.println("Product Name : "+p.getProName());
System.out.println("Product Price : "+p.getPrice());
System.out.println("----------------------");
}
session.close();
factory.close();
private static <T> List<T> loadAllData(Class<T> type, Session session) {
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<T> criteria = builder.createQuery(type);
criteria.from(type);
List<T> data = session.createQuery(criteria).getResultList();
return data;
}
Session session = HibernateUtils.getSession();
List<User> users = loadAllData(User.class, session);
try ( Session session = sessionFactory.openSession()) {
// Create CriteriaBuilder
CriteriaBuilder builder = session.getCriteriaBuilder();
// Create CriteriaQuery
CriteriaQuery<Entity> criteria = builder.createQuery(Entity.class);
// Specify criteria root
criteria.from(Entity.class);
// Execute query
List<Entity> entityList = session.createQuery(criteria).getResultList();
for (Entity e : entityList) {
// load the data
}
}