select:映射查询语句
insert:映射插入语句
update:映射更新语句
delete:映射删除语句
sql:可以重用的 sql 代码块
resultMap:最复杂,最有力量的元素,用来描述如何从数据库结果集中加载你的对象
cache:配置给定命名空间的缓存
cache-ref:从其他命名空间引用缓存配置
id="insertProject"paramterType="projectInfo" useGeneratedKeys="true"keyProperty="projectId"
>
每个 sql 映射文件的要元素中,都需要指定一个名称空间,用以确保每个映射语句的 id 属性不会重复。如
在 Java 代码中引用某个 sql 映射时,使用的亦是含有名称空间的全路径。如
session.update("com.mayikt.mapper.UserMapper.udpateUser", user);
第一种方法 传递map 型;
第二种方法:多个参数如果不封装成Map 参数值需要通过,多个参数的时候要使用 @Param 给指定参数,否则会出现找不到参数的错误
第三种方法:传递pojo ; 非常多参数 sql语句中获取参数值名称 与对象成员属性名称需要保持一致
List getByIdFlightParameterMap(Map parameterMap);List getByIdFlightParameter(@Param("company") String company,@Param("departureAirport") String departureAirport,@Param("arriveAirport") String arriveAirport);List getByIdFlightPoJo(FlightEntity flightEntity);
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。
使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。
如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。
mysql 加上输出日志

缺陷 如果没有传递company 导致sql报错
可以使用

alt+enter 选择第一个

Mapped Statements collection does not contain value for getByUsersAll
没有找到该getByUsersAll 对应sql语句 没有将Mapped 交给mybatis扫描到
Could not find resource mybatis/userMapper2.xml
clean 清除 编译class
Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for userMapper.getByUsers