乱七八糟

乱七八糟(关于一些小技巧和小bug集合)

String sql="select count(*) from travel.tab_route where cid=?";
        Integer integer = jdbcTemplate.queryForObject(sql, Integer.class, cid);

重点:

可以用来返回count(*)

Integer integer = jdbcTemplate.queryForObject(sql, Integer.class, cid);

将获得的rname重新编码为utf-8

rname=new String(rname.getBytes("iso-8859-1"),"utf-8");

当有值才能转换

String rname = request.getParameter("rname");
        //找了半天的bug  当rname有值时才进行转换,否则会出错
        if (rname!=null){
            rname=new String(rname.getBytes("iso-8859-1"),"utf-8");
        }

没有值时候 rname="null" 是字符串类型的

离天下之大谱

dao层要加一次判断

//servlet中获得String类型的空值null 所以要多加一个判断
        if(rname != null && rname.length() > 0 && !"null".equals(rname)){
            sb.append(" and rname like ? ");

            params.add("%"+rname+"%");
        }

jdbcTemplate的?可以用数组代替

jdbcTemplate.query(sql,new BeanPropertyRowMapper<Route>(Route.class),params.toArray());

Java substring() 方法

substring() 方法返回字符串的子字符串。

  • public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  • public int lastIndexOf(int ch, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索,如果此字符串中没有这样的字符,则返回 -1。
  • public int lastIndexOf(String str): 返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  • public int lastIndexOf(String str, int fromIndex): 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索,如果此字符串中没有这样的字符,则返回 -1。
//完成方法的分发
        //获取请求路径
        String uri = req.getRequestURI();  // travel/user/add
        //获取方法名称
        //重点 通过路径获取方法的名称
        String methodName = uri.substring(uri.lastIndexOf('/')+1);

Session的自杀方法

public void exit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //弄死自己  清除session
        request.getSession().invalidate();
        //跳转到登录页面  有数据才进行转发
        response.sendRedirect(request.getContextPath()+"/login.html");

    }

集合与List 与ArrayList与Set

集合

1.Java中的集合主要分为四类:

2.List列表:有序的,可重复的;

3.Queue队列:有序,可重复的;

4.集合类下包含的主要的实现类:

5.List列表:有序,可重复 1.1 ArrayList数组列表,有序,可重复,内部是通过Array实现。对数据列表进行插入、删除操作时都需要对数组进行拷贝并重排序。因此在知道存储数据量时,尽量初始化初...

List

List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法

List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

ArrayList

List是一个接口,而ListArray是一个类。
ListArray继承并实现了List。
所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。
List list; //正确 list=null;
List list=new List(); // 是错误的用法

List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。
而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

练习题

java如何实现list集合的去重

//利用set的特性,集合元素的唯一性

public static List heavyListMethod01(List list){

Set set=new HashSet(list);

LIst alist=new ArrayList();

for(object o : set){

​ alist.add(o);

}

return alist;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值