Mybatis
XML配置
<setting name="mapUnderscoreToCamelCase" value="true"/>
配置后查询所有的时候 查找的参数会自动忽略下划线
元素
id:命名空间的唯一标识符
parameterType:传入的语句参数的完全限定类名或别名.该属性是可选的,不建议配置
flushCache:默认为true,任何时候只要调用语句,都会清空以及缓存和二级缓存
timeout:设置在抛出异常之前,驱动程序等待数据库返回请求结果的秒数
statementType:默认值为PREPARED可选STATEMENT\PREPARED\CALLABLE
userGenerateteKeys:默认值为false.设置为true,Mybatis会使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键(适用于主键自增的数据库)
keyProperty:Mybatis通过getGeneratedKeys获取主键值后将要复制的属性名
<insert id="insert2" useGeneratedKeys="true" keyProperty="id">`
mysql中获取主键的另方法一种方法
<selectKey keyColumn="id" resultType="long" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
keyColumn:仅对insert和update有用
insert语句中返回的int类型值是执行的SQL影响的行数
MyBatis常用的OGNL表达式
-
e1 or e2
-
e1 and e2
-
e1 == e2 或 e1 eq e2
-
e1 != e2 或 e1 neq e2
-
e1 lt e2 : 小于
-
e1 lte e2: 小于等于,其他表示为gt(大于) gte(大于等于)
-
e1 + e2、 e1* e2 、e1-e2、e1%e2
-
!e或 not e: 非,取反
-
e.method(args):调用对象方法
-
e.property:对象属性值
-
e1[e2]:按索引取值(List/数组/map)
-
@class@filed:调用类的静态字段值
存储过程
在调用存储过程的方法中,需要把statementType设置为CALLABLE,由于存储过程方式不支持MyBatis的二级缓存,因此将select标签的useCache属性设置为false
statementType=“CALLABLE” useCache=“false”
IN: 入参
OUT:出参,必须指定jdbcType
INOUT:输入输出参数
另外强烈推荐一本书<<Mybatis从入门到精通>>–刘增辉著