MyBatis
Posted bailaowu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis相关的知识,希望对你有一定的参考价值。
与其他的 ORM (对象关系映射)框架不同, MyBtis 并没有将 Java 对象与数据库表关联起来,而是将 Java 方法与 SQL 语句关联。
在MyBatis 中关于数据库字段和 Java 类型的对应关系,不需要刻意去记,但需要注意一个特殊的类型byte[]。这个类型一般对应数据库中的BLOB、 LONGVARBINARY以及一些和二进制流有关的字段类型。
由于 Java 中的基本类型会有默认值,例如当某个类中存在int age 字段时,age 有默认值0,它总会有值。在某些情况下,便无法实现age 为null的判断。并且在动态 SQL 的部分,如果使用 age != null 进行判断,结果总会为 true,导致很多隐藏的问题。所以在实体类中不要使用基本类型。
因为接口方法是可以重载的,所以接口中可以出现多个同名但参数不同的方法,但是XML 中 id 的值不能重复,因而接口中的所有同名方法会对应着 XML 中的同一个 id的方法。最常见的用法就是,同名方法中其中一个方法增加一个 RowBound 类型的参数用于实现分页查询。
在resultMap中,property属性或别名要和对象中属性的名字相同,但是实际匹配时,MyBatis会先将两者都转换为大写形式,然后再判断是否相同,即property="userName"和property="username"都可以匹配到对象的userName属性上。因此在设置property属性或别名的时候,不需要考虑大小写是否一致,但是为了便于阅读,要尽可能按照统一的规则来设置。
mybatis 传参,一种是基本类型,另一种是JavaBean,还有一种是 map类型。
在Map 中通过key 来映射XML 中使用的参数值名字,value 用来存放参数值,例如:@Param("user") SysUser user, --> #{user.id};这里如果不加@Param注解,SysUser user --> #{id}。
以上是关于MyBatis的主要内容,如果未能解决你的问题,请参考以下文章