乱七八糟
乱七八糟(关于一些小技巧和小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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律