李敏  
日历
<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
统计
  • 随笔 - 1
  • 文章 - 40
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿(1)

文章分类

文章档案

相册

收藏夹

它山之石

聚贤庄

搜索

  •  

最新评论

 

 

public class Test{
  
/**
   * Test Method
   
*/

  
private void service(){
    String param[] 
= {
      
"name""id"
    }
;
    Object values[] 
= {
      
"minli"1
    }
;

    update(
"Customer", param, values);
  }


  
/**
   * 更新 (该方法目前只针对一个查询参数,至于多参数的可以在此基础上更改,思路则不变)
   * @params 为要更新实体当中的属性,其中最后一个为查询参数  
   
*/

  
private void update(String entity, String[] params, Object[] values){
    
if (params == null || values == null)
      
throw new NullPointerException("param is null!");

    
if (params.length < 2 || values.length < 2)
      
throw new IllegalArgumentException("param is wrong");

    
if (params.length != values.length)
      
throw new IllegalArgumentException("param is wrong");

    String updateHQL 
= updateSQL(entity, params, values);

    
//这个地方可以使用query来进行遍历数组来赋值
    System.out.println(updateHQL);
  }


  
/**
   * 生成Update HQL语句
   
*/

  
private String updateSQL(String entity, String[] params, Object[] values){
    String entityName 
= entity.toLowerCase();

    String baseHQL 
= "update " + entity + " " + entityName + " set ";

    
for (int i = 0; i < params.length - 1; i++){
      String param 
= params[i];

      baseHQL 
+= entityName + "." + param + "=:" + param;

      
if (i < params.length - 2)
        baseHQL 
+= ",";
    }

    String param 
= params[params.length - 1];

    baseHQL 
+= " where " + entityName + "." + param + "=:" + param;

    
return baseHQL;
  }


  
public static void main(String[] args){
    
new Test().service();
  }

}

posted on 2010-01-22 22:56 李敏 阅读(2905) 评论(1)  编辑  收藏 所属分类: 项目代码
评论:
  • # re: Hibernate的Update语句的多属性更新  Sky、超儿 Posted @ 2010-12-18 20:18
    还是不太明白使用,能帮我吗?379899146  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 李敏 Powered by: 博客园 模板提供:沪江博客