SSH框架中怎么使用Hibernate查询一个对象 hibernate按ID查询
SSH框架中怎么使用Hibernate查询一个对象
使用uniqueResult()查询一个对象,如果有很多对象就使用list()方法Dao.impl层写这些代码
@Override
public OriginalAccessory findByParAndSeq(String par, String seq) {
OriginalAccessory originalAccessory = null//声明变量
SessionFactory sessionFactory=hibernateTemplate.getSessionFactory()//得到sessionFactory
Session session=(Session) sessionFactory.openSession()//打开session
String sql="from OriginalAccessory where partName=? and sequence=?"//创建SQL语句
Query query=session.createQuery(sql)//创建查询对象query
query.setString(0,par)
query.setString(1,seq)
originalAccessory=(OriginalAccessory) query.uniqueResult()//有且只有一个对象时使用的方法,如果有多个结果就使用query.list()
session.close()//关闭session
sessionFactory.close()//关闭sessionFactory
return originalAccessory
}hibernate按ID查询
把你现在这个QuestionInfo的映射文件中和将要查的表的关系加上lazy="false"
最好把你的QuestionInfo映射和QuestionInfo类都贴出来 还有说明是级联查询哪个表hibernate按名字查询
hibernate中的方法并不是很好用,如果需要的话还是用Query接口实现比较好
public User findByname(String name){
String hql = "from User as u where u.name=?"
Query query = session.createQuery(hql)
query.setString(0, name)
ArrayList list= query.list() //返回的是一个集合
return (User)list.get(0)
}使用hibernate的get方法查询数据库,是不是只能根据id字段查询?
最基本的查询就是获得一个标量(数值)的列表。
1sess.createSQLQuery("SELECT * FROM CATS").list()
2sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list()
将返回一个Object数组(Object[])组成的List,数组每个元素都是CATS表的一个字段值。Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型。
如果要避免过多的使用ResultSetMetadata,或者只是为了更加明确的指名返回值,可以使用addScalar()。