拆装箱问题
拆箱:包装类-》基本数据类型
Integer Byte -127- 127是以缓存数组指向相同对象,之外的默认new
微服务的特点
模块化 完全解耦
防范SQL注入
#预编译 $直接用
$内容手动干涉
Mybatis的Executor
Mybatis有三种基本的Executor执行器,SimpleExecutor、ReuseExecutor、BatchExecutor。 SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。 ReuseExecutor:执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map<String, Statement>内,供下一次使用。简言之,就是重复使用Statement对象。 BatchExecutor:执行update(没有select,JDBC批处理不支持select),将所有sql都添加到批处理中(addBatch()),等待统一执行(executeBatch()),它缓存了多个Statement对象,每个Statement对象都是addBatch()完毕后,等待逐一执行executeBatch()批处理。与JDBC批处理相同。 作用范围:Executor的这些特点,都严格限制在SqlSession生命周期范围内。
集合类定制排序
实现comparable接口,重写其compareTo()方法(return >0 升序)
public int compareTo(Object o) { if(o instanceof User){ User user = (User) o; return this.age-user.getAge();//按照年龄升序排序 } throw new ClassCastException("不能转换为User类型的对象..."); }
然后要指定排序方式,不依赖compare的话,给sort传入一个comparator参数:
Collections.sort(list,new Comparator<User>(){ @Override public int compare(User o1, User o2) { // TODO Auto-generated method stub return o1.getName().compareTo(o2.getName()); }} );
Spring中事务回滚