mybatis使用细节注意
-
增删改查ParameterType都可以不用写
解释这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传入语句的参数
-
mybatis 中的sql语句不用写 ;
-
增删改中 ResultType,paramType都不用写,只需要一个id
解释:增删改返回的是影响的多少行,mybatis会自动判断,如果是数字(int,long)自动返回该类型,如果是boolean,影响0行则返回false,否则是true。
-
查询中如果返回的是一个JavaBean对象,指定resultType为JavaBean全限定类名,如果查询的是一个List集合,则指定该集合中泛型的类型,用ofType指定。
-
列名与属性名不一致时解决方案
-
开启驼峰命名法 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>