我在更新数据库列的时候有这样一个问题。数据库某列存的数据是以(10001,100002,100003)这种方式存的,存的都是一些用户的id,是以都号隔开的这种形式存的,当我删除某个人员的时候,这列也要更新一下,更新是跟新成功了,但是逗号怎么去掉比如我删除id为10001的用户,数据库的列跟新成功之后就变成(,10002,10003),就是这个逗号没有去掉,请问要用什么方式去掉啊

解决方案 »

  1.   

    我把更新的方法写贴上来给你们看看,看需要怎么修改
    public boolean update(List<?> userID) {
    boolean b = false;
    String hql;
    if (userID != null && userID.size() > 0) {
    for (int i = 0; i < userID.size(); i++) {
    hql = "SELECT s FROM tables WHERE s.memberId LIKE '%"
    + userID.get(i) + "%' AND s.id LIKE '4%'";
    List<tables> list = this.getHibernateTemplate().find(hql);
    if (list.size() != 0) {
    for (int j = 0; j < list.size(); j++) {
    String str = (String) list.get(j).getMemberId();
    int index = str.indexOf((String) userID.get(i));
    if (index != -1) {
    str = str.replaceAll((String) userID.get(i), "");
    list.get(j).setMemberId(str);
    try {
    this.getHibernateTemplate().update(list.get(j));
    b = true;
    } catch (DataAccessException e) {
    e.printStackTrace();
    b = false;
    }
    }
    } } else {
    b = true;
    }
    }
    }
    return b;
    }
      

  2.   

    str = str.replaceAll((String) userID.get(i), "");
    这行后面你可以写个方法判断字符","是否在 字符串的开头 或者结尾出现 并把开头或结尾的","去掉
      

  3.   

    先判断下要删除的字段是否在取出数据的最后,然后再决定是否在replace中增加“,”就可以了
      

  4.   

    if (index != -1) {
    str = str.replaceAll((String) userID.get(i), "");
    str = str.replaceAll(str, "(,", "("); //去掉最前一个,
    str = str.replaceAll(str, ",)", ")"); //去掉最后一个,
      

  5.   

    索引下你要删除的ID,如果ID+1是逗号就一并删除。
      

  6.   


    中间的没去掉呢
    要不加  str = str.replaceAll(str, ",,", ")"); 要不这样
    str = str.replaceAll((String) userID.get(i)+",", "");
    str = str.replaceAll(","+(String) userID.get(i), "");
      

  7.   

    String comma = ",";
    // 判断str的开头是不是以逗号开头的,如果是,返回true
    boolean start = str.startsWith(comma);
    // 当start结果为true时,通过subString截取str,从索引1开始(字符串索引重0开始),截取到最后
    if (start) {
    str = str.substring(1, str.length());
    }
    // 判断str结尾是不是以头号结尾,如果是,返回true
    boolean end = str.endsWith(comma);
    // 当end的结果为true时,通过subString截取str,从索引0开始(字符串索引重0开始),截取到倒数第二位
    if (end) {
    str = str.substring(0, str.length() - 1);
    }
      

  8.   

    中间的
    String commas = ",,";
    // 判断截取后的str中间存不存在连续两个逗号结尾的短字符串,如果不包含返回-1
    int commaNum = str.indexOf(commas);
    // 当commaNum的结果不为-1时,将连续两个逗号的短字符串替换为一个逗号
    if (commaNum != -1) {
    str = str.replaceAll(commas, ",");
    }