目录
mybatis的dao层接口怎么和xml文件一一映射?
mapper标签的namespace属性是mybaits映射文件的唯一标识,与接口对应
mybatis#{}和${}的区别?
#是占位符 ,sql先进行预编译,最后才把变量传进去,能后防止sql注入
$是直接拼接,直接将变量拼接进去,不能防止sql注入
mybatis什么情况中要用${}?
就是当我们需要拼接的变量上不能带单引号时,就必须使用${},其他情况都尽量使用#{}的方式,因为${}会有sql注入的问题
常见的使用${}的情况:
1.当sql中表名或字段是从参数中取的情况
2.order by排序语句中,因为order by 后边必须跟字段名,这个字段名不能带引号,如果带引号会被识别会字符串,而不是字段。
如何跳出两层for循环执行后面的代码?
使用java标签,java标签只能用在循环上面定义在循环开始的位置配合break或continue使用
spring为什么要用事物?
因为要保证事物的四大特性原子性、一致性、持久性、隔离性
spring实现事物的方式有哪些?
声明式事务、编程式事物。
java中switch小括号中表达式可以是什么类型?
JDK 1.5以前:x 只能是byte, short, char, int
JDK 1.5之后:x 的类型也可以是枚举类型啦!
JDK 1.7之后:x 的类型又多了一个String类型~
无论哪个版本的JDK,都是不支持 long,float,double,boolean 这个一定要注意!
aop面向切面编程的常用注解有哪些?
@Aspect:
作用:把当前类声明为切面类。
@Before:
作用:把当前方法看成是前置通知。
属性:
value:用于指定切入点表达式,还可以指定切入点表达式的引用。
@AfterReturning
作用:把当前方法看成是后置通知。
属性:
value:用于指定切入点表达式,还可以指定切入点表达式的引用。
@AfterThrowing
作用:把当前方法看成是异常通知。
属性:
value:用于指定切入点表达式,还可以指定切入点表达式的引用。
@After
作用:把当前方法看成是始终通知。
属性:
value:用于指定切入点表达式,还可以指定切入点表达式的引用。
@Around
作用:把当前方法看成是环绕通知。
属性:
value:用于指定切入点表达式,还可以指定切入点表达式的引用。
@Pointcut
作用:指定切入点表达式
属性:
value:指定表达式的内容