首页 > 代码库 > 对hibernate增删改查总结

对hibernate增删改查总结

                     对hibernate增删改查总结

1Hql 更新

    A. 注意这里是部分更新。如果直接进行更新session.update(js);将会默认更新所有的字段。设置更新的字符时,采用的是下标(0,1,23)的形式。

@Override

public void upadteJS(BJs js) {

BJs是类

String hql = "update BJs js set  js.jsxm=?,js.jsztbm=?, js.xlbm=?,js.xwbm=?,js.zcbm=?,js.bmbm=? where js.jsbh =?";

Query q = this.getSession().createQuery(hql);

//q.setString(0, js.getJsbh());

q.setString(0, js.getJsxm());

q.setString(1, js.getJsztbm());

q.setString(2, js.getXlbm());

q.setString(3, js.getXwbm());

q.setString(4, js.getZcbm());

q.setString(5, js.getBmbm());

q.setString(6, js.getJsbh());

q.executeUpdate();

}

B更灵活的命名参数形式

String hql = "update BJs js set  js.jsxm=jsxm  where js.jsbh =:jxbh";

Query query=s.createQuery(hql);
   query.setString("jsxm ", Tjsbh);

注意上面的标红部分为要替换的字符。

2HQL删除

直接利用sql进行删除

public boolean deleteTeamMember(int TeamID, String TeacherNum) {

   String sql = "DELETE from TBLTEAMTOTEACHER where (TEAMID=?)AND (THNUM=?)";

        SQLQuery query = this.getSession().createSQLQuery(sql);

        query.setParameter(0, TeamID);

        query.setParameter(1, TeacherNum);

          int numquery.executeUpdate(); 

          if(num>0)

          return true;

          else

          return false;

}

利用hql进行删除

  public void delete(int id){

   String hql="delete Person as p where p.id=?";

   Query query=session.createQuery(hql);

   query.setInteger(0,id);

   query.executeUpdate();

   session.beginTransaction().commit();

}

(3)查询

static void query(String name){

   Session s=null;

   try{

    s=HibernateUtil.getSession();

    

    //from后面是对象,不是表名

   String hql="from Admin as admin where admin.aname=:name";//使用命名参数,推荐使用,易读。

   Query query=s.createQuery(hql);

    query.setString("name", name);

    

    List<Admin> list=query.list();

    

    for(Admin admin:list){

     System.out.println(admin.getAname());

    }

   }finally{

    if(s!=null)

    s.close();

   }

  }

 

 

对hibernate增删改查总结