首页 > 代码库 > 对hibernate增删改查总结
对hibernate增删改查总结
对hibernate增删改查总结
(1)Hql 更新
A. 注意这里是部分更新。如果直接进行更新session.update(js);将会默认更新所有的字段。设置更新的字符时,采用的是下标(0,1,2,3)的形式。
@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);
注意上面的标红部分为要替换的字符。
(2)HQL删除
直接利用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 num= query.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增删改查总结