项目设计中遇到一个问题,数据表某个字段的值需要在1到0之间变化。那我们在写该字段hibernate中更新的代码的时候可以分别写两个操作的方法,或者也可以写一个方法,通过构造查询条件来实现。现在的问题是,在hibernate中,怎么样设计是好的?代码如下:
=================
方法一:
public void updateIsCensor(String member_id,String mode) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
if ("ok".equals(mode)){
updateTemp.append("UPDATE Member SET isCensor=1");
}
if ("reset".equals(mode)){
updateTemp.append("UPDATE Member SET isCensor=0");
}
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
==================================
方法二:
public void updateIsCensorOk(String member_id,String mode) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
updateTemp.append("UPDATE Member SET isCensor=1");
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
public void updateIsCensorReset(String member_id) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
updateTemp.append("UPDATE Member SET isCensor=0");
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
我个人感觉方法一会比较好,因为减少了很多代码量.但是不知道是否符合hibernate 的编程规则.
=================
方法一:
public void updateIsCensor(String member_id,String mode) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
if ("ok".equals(mode)){
updateTemp.append("UPDATE Member SET isCensor=1");
}
if ("reset".equals(mode)){
updateTemp.append("UPDATE Member SET isCensor=0");
}
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
==================================
方法二:
public void updateIsCensorOk(String member_id,String mode) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
updateTemp.append("UPDATE Member SET isCensor=1");
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
public void updateIsCensorReset(String member_id) throws HibernateException{
StringBuffer updateTemp=new StringBuffer();
updateTemp.append("UPDATE Member SET isCensor=0");
updateTemp.append(" where id='");
updateTemp.append(member_id);
updateTemp.append("'");
System.out.println("会员审核时候的 sql="+updateTemp.toString());
int updatedEntities = getSessionFactory().openSession().createQuery(updateTemp.toString()).executeUpdate();
}
我个人感觉方法一会比较好,因为减少了很多代码量.但是不知道是否符合hibernate 的编程规则.