Spring中的Hibernate操作,进行数据库数据的提取,现在我所知的有三种方式(可能会有出入,还请大家多多指教)
第一种:使用hql
final String hql = "SELECT DISTINCT dim.item FROM Result dim WHERE dim.item= : item AND dim.name= : name"; return (List<String>) sessionFactory.getCurrentSession().createQuery(hql) .setString("item", item) .setString("name", name) .uniqueResult();
上面这种方式返回的是一个List<String>
上面这种方式返回的是一个Result的对象Query query = sessionFactory.getCurrentSession().createQuery("FROM Result where item = :item and name = :name"); query.setString("item", item); query.setString("name", name); return (Result) query.uniqueResult();
第二种: 使用编程的方式(criteria)
这种方式返回的是一个Result的对象Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Result.class); Result result = (Result) criteria.add(eq("item", item)) .add(eq("name", name)).uniqueResult(); return result;
第三种:使用原生的SQL语句
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery("SELECT * FROM result WHERE item = :item AND name = :name"); query.setString("name", name); query.setString("item", item); return (Result) query.uniqueResult();