hibernate 四种查询方法

public class Test01 {

public static void main(String[] args) {

Configuration cfg=new Configuration().configure();

SessionFactory sf=cfg.buildSessionFactory();

Session session=sf.openSession();

session.beginTransaction();

 

//Group gp=new Group();

//gp.setName("java19班级");

//session.save(gp);  //id

//第一种查询方式

/**

Criteria criteria=session.createCriteria(Group.class);

criteria.add(Restrictions.or(Restrictions.like("name","%3%"), Restrictions.idEq(1)));

criteria.add(Expression.like("name","%3%")).add(Expression.idEq(2)).addOrder(Order.desc("name"));

*/

//第二种查询方式     

//Query query=session.createQuery("from Group where name like '好%' ");

 

 

//第三种  1  本地sql方式查询

//Query query=session.getNamedQuery("findByName");

 

 

//第三种  2  本地sql方式查询

String sql="SELECT l.* FROM tb_group l where l.id=? or l.name like ?";

Query query=session.createSQLQuery(sql).addEntity("l",Group.class);

 

query.setInteger(0, 1);

query.setString(1, "3%");

List<Group> ls=query.list();

for (Group gp : ls) {

System.out.println(gp.getName());

}

 

 

 

session.beginTransaction().commit();

session.close();

sf.close();

}

}

 

 

 

//////////////////////////////////

 

<sql-query name="findByName1">

     {call findByNames(?,?)}

     <!--

     DELIMITER $$   

DROP PROCEDURE IF EXISTS findByNames$$   

CREATE PROCEDURE findByNames( IN id  INT,IN namess VARCHAR(20))   

BEGIN   

  SELECT l.* FROM tb_group l WHERE l.id=id AND l.name=namess;

  

END$$   

DELIMITER ; 

     -->

      <return class="com.mwl.Group"/>

   </sql-query>

猜你喜欢

转载自sunbin.iteye.com/blog/2365037