`
taiwei.peng
  • 浏览: 235334 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate 多条件查询,查询部分字段等操作

    博客分类:
  • java
阅读更多

1.hibernate hql语句查询一个字段
String userName="";
String hql=" select employeeName from Employee where id="+empId+" ";
Query query =this.getSession().createQuery(hql);
List<String> list = query.list();
for(String str : list){
userName=str;
}
return userName;

 

2.hibernate hql语句查询二个字段(或更多的字段)
List<DropDownModel> modeList=new ArrayList<DropDownModel>();
String hql=" select id,departmentName from Department ";
Query query =this.getSession().createQuery(hql);
List<Object[]> list = query.list();
for(Object[] object : list){
DropDownModel model=new DropDownModel();
model.setId(Long.parseLong(object[0].toString()));
model.setName(object[1].toString());
modeList.add(model);
}
return modeList;

 

3.hibernate hql语句使用聚合函数
String hql = "select count(*) from Department where 1=1 and departmentNumber = ? " ;
Query query = this.getSession().createQuery(hql);
if (paraList != null) {
for (int i = 0; i < paraList.size(); i++) {
query.setParameter(i, paraList.get(i));
}
}
return ((Number) query.uniqueResult()).intValue();

 

4.hibernate hql语句查询
String sql=" from Employee where department.id = ? order by displayOrder";
public List findByCriteriaByHQL(String sqlStmt, List args) {
Query query = this.getSession().createQuery(sqlStmt);
if (args != null) {
int size = args.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, args.get(i));
}
}
return query.list();
}

 

5.hibernate 查询oracle序列

  long r = 0;
  Query query = this.getSession().createSQLQuery("SELECT SEQ_SYSMGMT.nextval FROM DUAL");
  List list = query.list();
  if (null!=list&& list.size() > 0) {
   r = Long.parseLong(list.get(0).toString());
  }
  return r;

 

6.hibernate hql语句修改部分字段
String hql=" Update OfficeReceipt set lwDept=?,repDate=?,lwWh=?,lwTitle=? where id=? ";
Object [] obj={officeReceipt.getLwDept(),officeReceipt.getRepDate(),officeReceipt.getLwWh (),officeReceipt.getLwTitle(),officeReceipt.getId()};
this.getHibernateTemplate().bulkUpdate(hql, obj);

 

7.hibernate hql 删除

public void DeleteOfficeNote(OfficeNote officeNote) {
String hql = "delete OfficeNote where officeId=? and empId=?";
Query query = this.getSession().createQuery(hql);
query.setLong(0, officeNote.getOfficeId());
query.setLong(1, officeNote.getEmpId());
query.executeUpdate();
}

 

8.hibernate查询 带参数的查询

public OfficeNote findNoteByparam(OfficeNote officeNote) {
OfficeNote note=null;
String hql=" from OfficeNote t where t.officeId=? and empId=? ";
Object [] obj ={officeNote.getOfficeId(),officeNote.getEmpId()};
List list=this.getHibernateTemplate().find(hql, obj);
if(null!=list&&list.size()>0){
note=(OfficeNote)list.get(0);
}
return note;
}

 

9.Hibernate sql查询

String sql=" select e.id as id,e.name as name,e.address as address,d.id as deptId,d.dep_name as   deptName  from  emp_info e left join dep_info d on e.dep_id=d.id ";
 Session session =this.getSession();
 try{
  SQLQuery sqlquery=(SQLQuery)session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(MsgInfo.class));
  sqlquery.addScalar("id",Hibernate.INTEGER);
  sqlquery.addScalar("name",Hibernate.STRING);
  sqlquery.addScalar("address",Hibernate.STRING);
  sqlquery.addScalar("deptId",Hibernate.INTEGER);
  sqlquery.addScalar("deptName",Hibernate.STRING);
  List list=sqlquery.list();
  for(int i=0;i<list.size();i++){
   MsgInfo msgInfo=(MsgInfo)list.get(i);
   msgList.add(msgInfo);
  }

}catch(Exception ce){
  ce.printStackTrace();
 }

 

10.Hibernate sql查询2

DetentionWayBillDetail wayBillDetail=null;
  String sql=" SELECT T.WAYBILL_NO waybillNo,T.CHECK_RESULT chkResult,T.IS_FOLLOW isFollow,T.CHK_PERSON chkPerson," +
       " CAST(T.CREATE_TIME AS TIMESTAMP) createTime FROM TM_DETEN_CHECKRESULT T WHERE T.WAYBILL_NO= ? ";
  Query query=session.createSQLQuery(sql);
  query.setParameter(0, waybillNo);
  List resultList=query.list();
  if(null!=resultList&&resultList.size()>0)
  try{
   Object[] result = (Object[]) resultList.get(0);
   wayBillDetail=new DetentionWayBillDetail();
   wayBillDetail.setWaybillNo((String) result[0]);
   wayBillDetail.setChkResult((String)result[1]);
   if("N".equals(result[2])){
    wayBillDetail.setIsFollow("否");
   }else{
    wayBillDetail.setIsFollow("是");
   }
   wayBillDetail.setChkPerson((String)result[3]);
   wayBillDetail.setCreateTime((Date)result[4]); 

 

11.Hibernate sql插入

String sql=" INSERT INTO TM_WORKTIME_CONFIG(WORK_ID,AREA_CODE,WORK_START_TIME,WORK_END_TIME,DEPT_CODE," +
       " EMP_NO,CREATE_TIME,EFFECTIVE_TIME) VALUES(SEQ_SYSMGMT.nextval,?,?,?,?,?,?,?)";
  Query query=this.getSession().createSQLQuery(sql);
  List<Object> paramList=new ArrayList<Object>();
  paramList.add(workTimeConfig.getAreaCode());
  paramList.add(workTimeConfig.getWorkStartTime());
  paramList.add(workTimeConfig.getWorkEndTime());
  paramList.add(workTimeConfig.getDeptCode());
  paramList.add(workTimeConfig.getEmpNo());
  paramList.add(new Date());
  paramList.add(workTimeConfig.getEffecTiveTime());
  Object[] values = paramList.toArray();
  for (int i = 0; i < values.length; i++) {
   query.setParameter(i, values[i]); 
  } 
  query.executeUpdate();   

 

12.hibernate 分页查询方法

public List<TransferOnTime> findTransferOnTimeByParam(final QueryParam queryParam,String [] deptValue,int deptLevel)throws DaoException{

final List<Object> paramList=new ArrayList<Object>();

final String sqlString = generateSQL(queryParam,paramList,deptValue,deptLevel);

return (List<TransferOnTime>) getHibernateTemplate().execute(new HibernateCallback() {

public Object doInHibernate(Session session) throws HibernateException {

Query query = session.createSQLQuery(sqlString);

query.setFirstResult(queryParam.getPageSize()*(queryParam.getPageIndex()));

query.setMaxResults(queryParam.getPageSize());

if (paramList != null && paramList.size() > 0) {

Object[] values = paramList.toArray();

for (int i = 0; i < values.length; i++) {

query.setParameter(i, values[i]);

}

}

return findTransferOnTimeResult(query.list(),queryParam);

}

});

}

 

private List<TransferOnTime> findTransferOnTimeResult(List<Object[]> transferValue,QueryParam queryParam){

List<TransferOnTime> transferOnTimeList=new ArrayList<TransferOnTime>();

//查询类型

String typeId=queryParam.getQueryValue("query_sumeryType");

TransferOnTime transferOnTime=null;

for(int i=0;i<transferValue.size();i++){

  transferOnTime=new TransferOnTime();

 Object [] transferObj=transferValue.get(i);

if(TdMonitorConstants.QUERY_BATCHCODE.equals(typeId)){

    this.setBatchCodeInfo(transferOnTime, transferObj, queryParam);

}else{

    this.setAreaAndTransfer(transferOnTime, transferObj, queryParam);

}

this.setMainlineVehicleLoadCapacity(transferOnTime);

transferOnTimeList.add(transferOnTime);

}

return transferOnTimeList;

}

13.HIbernate sql 修改

public void updateCommentDetail(final TimeCommitment commitment) {

final String sql=SQLProvider.getSQL("updateTimeDtl").trim();

getHibernateTemplate().execute(new HibernateCallback() {

public Object doInHibernate(Session session) {

SQLQuery query = session.createSQLQuery(sql); 

query.setParameter(0, commitment.getAuditDay());

query.setParameter(1, commitment.getAuditDay());

query.setParameter(2, commitment.getAuditTime());

query.setParameter(3, commitment.getIsUpdate());

query.setParameter(4, commitment.getEditEmp());

query.setParameter(5, commitment.getEditTime());

query.setParameter(6, commitment.getEditInfo());

query.setParameter(7, commitment.getProduceType());

query.setParameter(8, commitment.getSrcZoneCode());

query.setParameter(9, commitment.getDestCityCode());

query.setParameter(10, commitment.getBatchCode());

query.setParameter(11, commitment.getVersionDt());

query.executeUpdate();

               return null;

           }

       });

 

}

 

14.HIbernate sql 删除

public void deleteMissInfo(final String plateNumber, final String checkZoneCode,

final String doubtMissTime) throws Exception {

final String sql=this.generteMissTimeSql(plateNumber);

getHibernateTemplate().execute(new HibernateCallback() {

 public Object doInHibernate(Session session) {

    SQLQuery query = session.createSQLQuery(sql);  

    query.setParameter(0, checkZoneCode);

    query.setParameter(1, doubtMissTime+":00");

    query.setParameter(2, doubtMissTime+":59");

    query.setParameter(3, plateNumber);

    query.executeUpdate();

    return null;

        }

    });

}

 

分享到:
评论

相关推荐

    Hibernate_query查询数据表中部分字段.

    本文将深入探讨如何使用Hibernate进行数据表中的部分字段查询,这在实际开发中是非常常见的需求。 首先,理解Hibernate的核心概念:实体(Entity)、持久化类(Persistent Class)和映射文件(Mapping File)。实体...

    springMVC+hibernate的条件查询加分页的demo

    在这个“springMVC+hibernate的条件查询加分页的demo”中,我们将探讨如何结合这两个框架实现动态的条件查询和分页功能。 首先,让我们了解一下SpringMVC中的条件查询。在SpringMVC中,通常通过Controller层接收...

    Hibernate的高级查询

    HQL支持各种复杂的查询,如连接查询、分组查询、子查询等。例如,我们可以用以下HQL语句查询所有未删除的用户: ```java String hql = "from User u where u.deleted = false"; Query&lt;User&gt; query = session....

    hibernate的多态查询

    5. **多态查询的实现**:Hibernate支持使用`DetachedCriteria`或`Criteria` API来进行多态查询,通过`createCriteria()`方法指定父类,并使用`add(Restrictions.in("property", values))`等方法来限制查询条件。...

    hibernateHQL关联查询

    在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM)功能,使得开发者能够以面向对象的方式来处理...

    struts CRUD+HIbernate 多对一查询+部分表删除功能

    总之,这个实例是一个很好的学习平台,它不仅展示了基本的CRUD操作,还涵盖了更高级的多对一查询和部分删除功能,这对于初学者理解Struts和Hibernate的整合使用非常有帮助。通过实际操作这个实例,开发者能够加深对...

    Hibernate QBC高级查询.rar

    6. **投影(Projection)**:不同于传统的返回完整实体,Projection允许我们只获取查询结果的一部分,比如特定字段的值或者计算结果。 7. **动态实体(Dynamic Instantiation)**:在某些情况下,我们可能不知道...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    这篇博客探讨了如何在Hibernate3中通过原生SQL获取部分字段,并将这些数据映射到具体的对象实例。 首先,原生SQL查询允许开发者绕过Hibernate的HQL(Hibernate Query Language),直接使用数据库的SQL语法进行查询...

    hibernate查询语句--HQL

    在 Hibernate 中,执行查询操作的主要方式之一是使用 Hibernate 查询语言(HQL)。 HQL 是一种面向对象的查询语言,它支持标准 SQL 的大部分功能,并添加了一些额外的功能,如对象导航、集合投影等。本文将深入探讨...

    hibernate动态分表

    【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...

    Hibernate生产SQL语句

    4. **Criteria查询**:这是Hibernate提供的API,可以动态构造查询条件。通过`Criteria.createCriteria()`创建Criteria对象,然后使用`add()`方法添加查询条件,最后调用`list()`或`uniqueResult()`执行查询。 5. **...

    Hibernate javaclient 查询,更新小例子

    - 使用`Session.createQuery()`或`Session.createCriteria()`进行HQL或Criteria查询,返回Query或Criteria对象,可以进一步设置条件、排序等,然后调用`list()`或`uniqueResult()`执行查询。 2. **更新操作**: -...

    Hibernate-Criteria 模糊查询

    Hibernate作为一款优秀的Java持久层框架,提供了多种方式来进行数据库操作,其中包括HQL(Hibernate Query Language)、Criteria API以及Native SQL等。其中,Criteria API由于其简洁的API设计和强大的查询能力,受...

    Hibernate_QBC查询[归类].pdf

    总结来说,Hibernate QBC查询是一种强大的查询机制,它通过Criteria API和Expression类提供了丰富的查询表达式,使得开发人员可以在不直接接触SQL的情况下进行复杂的数据库操作。这种面向对象的查询方式不仅简化了...

    hibernate的HQL的模糊查询

    1. **使用`in`关键字**:如果需要查询符合多个条件的记录,可以结合`in`关键字。例如,查询所有名字以"张"或"李"开头的用户: ```java String[] names = {"%张%", "%李%"}; query.setParameterList("name", names);...

    hibernate5.1.10 依赖jar包

    它可以执行更复杂的查询,例如关联查询、聚合函数、子查询等。 **7. Hibernate事务处理** 在Hibernate中,可以通过Session的beginTransaction()、commit()和rollback()方法管理事务。事务是数据库操作的基本单元,...

    Hibernate 使用DetachedCriteria操作

    除了基本的条件和排序,DetachedCriteria还可以进行子查询、连接查询、分组聚合等复杂操作。例如,你可以使用`createCriteria()`方法来建立关联查询,或者使用`setProjection()`设置分组或聚合函数。 **7. 总结** ...

    Hibernate数据查询

    投影是指选择查询结果中的部分字段,可以使用HQL的SELECT子句或Criteria的Projection功能。别名则是为查询结果的属性设置一个别名,方便在结果集中引用。 6. **统计查询** Hibernate支持COUNT、AVG、MAX、MIN和...

Global site tag (gtag.js) - Google Analytics