mybatis使用细节注意

mybatis细节

  • 增删改查ParameterType都可以不用写

    解释这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传入语句的参数

  • mybatis 中的sql语句不用写

  • 增删改中 ResultType,paramType都不用写,只需要一个id

    解释:增删改返回的是影响的多少行,mybatis会自动判断,如果是数字(int,long)自动返回该类型,如果是boolean,影响0行则返回false,否则是true。

  • 查询中如果返回的是一个JavaBean对象,指定resultType为JavaBean全限定类名,如果查询的是一个List集合,则指定该集合中泛型的类型,用ofType指定。

  • 列名与属性名不一致时解决方案

    1. 开启驼峰命名法 mybatis-plus默认开启(前提需要满足驼峰命名规则 eg: aaa_bb aaaBb)

    • sql语句起别名(属性与列名完全不一致)

    • 使用resultMap一一映射(属性与列名完全不一致) 推荐

  • 当封装的结果中有List集合中,要使用collection标签

<collection property="list" ofType="User">
   <id column="userId" property="user_id"></id>
   <result column="userName" property="user_name"></result>
</collection>
  • 当封装的结果中有pojo对象时,可以使用association标签

<association property="emp" javaType="emp">
   <id column="userId" property="user_id"></id>
   <result column="userName" property="user_name"></result>
</association>
  • 分步查询select,colum

    select 指定查询sql的唯一标识id

    colum 指定 将查询得到的哪一列值传递过去,mybatis会自动将数据赋值给sql中

 <collection property="categories" ofType="com.abu.gulidemo.pojo.Category"           
select="com.abu.gulidemo.mapper.CategoryMapper.getCategory0203ByPid"
olumn="cat_id"></collection>
posted @ 2020-09-23 10:03  永无八哥  阅读(238)  评论(0编辑  收藏  举报