最近在用ssh框架写网站,对hibernate框架一直都是一知半解的。只能通过手动一步步的测试,先把目前测试出来的东西做一个小总结吧。
查询:
1.用sql语句查询,返回Model对象
//注意 这里的语句是原生的sql语句,表名和字段名都是数据库中的字段
@Override
public List<SubTaskAudio> getSubTaskAudiosByGroup(int groupid) {
// TODO Auto-generated method stub
Session session=getSessionFactory().getCurrentSession();
String hqlString="select s.* from SUB_TASK_AUDIO s where s.AUDIO_GROUP=?";
SQLQuery query=session.createSQLQuery(hqlString);//
query.setParameter(0, groupid);
//设置返回的数据映射的对象,返回hibernate model对象
query.addEntity(SubTaskAudio.class);
List<SubTaskAudio> list=query.list();
return list;
}
2.用hql语句查询
//注意查询语句是model中对应的表名和字段的名称
@Override
public SubTaskAudio getSubTaskAudioByIndexID(int indexid) {
// TODO Auto-generated method stub\
Session session=getSessionFactory().getCurrentSession();
String hqlString="from SubTaskAudio s where s.indexid=?";
Query query=session.createQuery(hqlString);
query.setParameter(0, indexid);
List<SubTaskAudio> list=query.list();
if(list.size()>0){
return list.get(0);
}else{
return null;
}
}
3.用sql查询,并返回map
@Override
public String getSubTaskNum(String tasktype, int taskState, String dataType) {
// TODO Auto-generated method stub
Session session = getSessionFactory().getCurrentSession();
String sql = "select t.ID from SUB_TASK t,SUB_CONFIGURATION c where t.TYPE=c.INDEXID and c.VALUE=? and