spring
- spring aop
需要注意的是,三方包aspectjrt的版本和jdk版本的兼容问题
spring mvc
- web.xml的配置
mybatis
- mybatis #{} 和 ${} 的区别
- 原则:能用#{},不用${}
- 原因:#{}可以防止sql注入
- 原理:#{}相当于占位符 ?,而${}是直接替换变量名
- 什么时候用
${}
: 当需要传表名等不能加''
的地方,使用#{}
会自动给变量加上''
,所以在sql语法不允许有''
的地方就使用${}
- mybatis在接口传参的时候
- 当传一个参数的时候,不会根据名称来接收,在xml里无论用什么名称都能接收,只要在#{}里就能接收
- 当传多个参数的时候
- 使用arg来接收
- 使用javaBean
- mybatis insert与update的useGeneratedKeys和keyProperty的使用
简单来说就是可以把自动生成的id返回回来,返回到javaBean,如下面代吗所示
- 当传一个参数的时候,不会根据名称来接收,在xml里无论用什么名称都能接收,只要在#{}里就能接收
- 常见问题
-
当在windows环境下配置spring的jdbc数据源时,如果使用的是properties文件的方式来配置的话,名称绝对不能是username
<!-- 2.数据库连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 配置连接池属性 --> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> {jdbc.user}"/> <property name="password" value="${jdbc.password}"/>
原因:username在windows下默认取值为电脑的账号,一般为了避免和Windows基本配置冲突,
解决办法:数据库连接名常常写的较长如 {jdbc.username}这样就可以唯一识别用户名而不会和Windows冲突。