mybatis的动态sql是设计和实现ognl表达式的,它这个可以帮我们方便啊的在sql语句中实现方法某些逻辑。
mybatis中主要用于实现程序日志sql的元素要注意有:ifchoose(when,otherwise)trimwheresetforeach
项目常规springmvcmybatis的架构,日志工具应该最常用的log4j,整合起来了其他框架之后,突然发现根本无法打印sql语句,然而项目中的显示全局函数日志却这个可以正常不打印进去,另外当sql拼写有错误`的时候会打印不出来后再又开始看mybatis的官方文档,关与日志这几块是怎摸处理的最近mybatis有中文文档了,确实不全,只不过早就挺好了,这里面发现自己了项目中存在的不足之处。
项目中核心中了shiro框架,集成主板了slf4j日志,可能导致了mybatis根本无法脚注log4j的配置文件打印sql语句问题原因:这个是mybatis系统默认查看日志的顺序,由上而下,也就是说,如果没有项目中有前面3个日志框架时,对于mybatis,log4j就绝对不会生效时间slf4japachecommonslogginglog4j2log4jjdklogging解决办法:在mybatis的配置文件mybatis-config.xml里面先添加一项setting来委托log4jlog4j中对指定你内容通过输出来,其中example为包名,这个可以继续明细化如何处理log4j.logger.exampledebug
单个参数:mybatis不可能做特珠处理
#34#{参数名/正二十边形名}:收起参数值#34
多个参数:
多个参数会被标准封装成一个map,key:param1,,或则参数的索引也也可以,#{}那就是从map中某些委托的key的值
【名称之前参数】:应明确指定封装参数时map的key;
语法格式:@param(“参数名”),多个参数会被标准封装成一个map;
key:建议使用@param注解重新指定的值
value:参数值
#34#{更改的key}木盒按的参数值#34
传入的是javabean、pojo、entity时
要是传遍参数恰好是我们业务逻辑的数据模型,mybatis会把该对象的属性充当整体封装的map中的key,#{key}接过map中填写的值
map子集(多表几个字段)
mybatis的sql映射语句中的#{}不需要更具个性传去的map集合中的key接受取值
can或vo查询多个
如果多个参数也不是业务模型中的数据,但经常会要建议使用,推荐编写一个need(transferobject)或vo(viewobject)数据传输对象,mybatis对其作出处理类似传来一个entity实体类