MyBatis之Mapper详解及常用技巧

  

选择先看一个简单的案例:

& lt; select  id=皊electPerson”, parameterType=癷nt”, resultType=癶ashmap”比;   SELECT  *,才能得到PERSON  WHERE  ID =, # {id}   & lt;/select>

String  selectPerson =,“SELECT  *,得到PERSON  WHERE  ID=?”;   PreparedStatement  ps =, conn.prepareStatement (selectPerson);   ps.setInt (id),

<标题>

选择属性属性

描述id在命名空间中唯一的标识符,可以被用来引用这条语句.parameterType将会传入这条语句的参数类的完全限定名或别名。这个属性是可选的,因为MyBatis可以通过TypeHandler推断出具体传入语句的参数,默认值为unset.resultType从这条语句中返回的期望类型的类的完全限定名或别名。注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用resultType或resultMap,但不能同时使用.resultMap外部resultMap的命名引用。结果集的映射是MyBatis最强大的特性,对其有一个很好的理解的话,许多复杂映射的情形都能迎刃而解。使用resultMap或resultType,但不能同时使用.flushCache将其设置为真的,任何时候只要语句被调用,都会导致本地缓存和二级缓存都会被清空,默认值:false.useCache将其设置为真,将会导致本条语句的结果被二级缓存,默认值:对选择元素为true.timeout这个设置是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数。默认值为复原(依赖驱动).fetchSize这是尝试影响驱动程序每次批量返回的结果行数和这个设置值相等。默认值为复原(依赖驱动).statementTypeSTATEMENT,准备或可调用的一个。这会让MyBatis分别使用声明,PreparedStatement或CallableStatement,默认值:PREPARED.resultSetTypeFORWARD_ONLY, SCROLL_SENSITIVE或SCROLL_INSENSITIVE中的一个,默认值为复原(依赖驱动).databaseId如果配置了databaseIdProvider, MyBatis会加载所有的不带databaseId或匹配当前databaseId的语句;如果带或者不带的语句都有,则不带的会被忽略.resultOrdered这个设置仅针对嵌套结果选择语句适用:如果为真,就是假设包含了嵌套结果集或是分组了,这样的话当返回一个主结果行的时候,就不会发生有对前面结果集的引用的情况。这就使得在获取嵌套的结果集的时候不至于导致内存不够用。默认值:false.resultSets这个设置仅对多结果集的情况适用,它将列出语句执行后返回的结果集并每个结果集给一个名称,名称是逗号分隔的。

选择的模糊查询:

& lt; select  id=癵etUserByName”, parameterType=白址?resultType=癱n.itheima.mybatis.po.User”比;   ,,,SELECT  *,得到“用户”,WHERE  username  LIKE  ' % $ {value} % '   & lt;/select>

插入、更新、删除的属性接近:


<标题>插入、更新、删除' s属性属性描述id命名空间中的唯一标识符,可被用来代表这条语句.parameterType将要传入语句的参数的完全限定类名或别名。这个属性是可选的,因为MyBatis可以通过TypeHandler推断出具体传入语句的参数,默认值为unset.flushCache将其设置为真的,任何时候只要语句被调用,都会导致本地缓存和二级缓存都会被清空,默认值:true(对应插入,更新和删除语句).timeout这个设置是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数。默认值为复原(依赖驱动).statementTypeSTATEMENT,准备或可调用的一个。这会让MyBatis分别使用声明,PreparedStatement或CallableStatement,默认值:PREPARED.useGeneratedKeys(仅对插入和更新有用)这会令MyBatis使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键(比如:像MySQL和SQL Server这样的关系数据库管理系统的自动递增字段),默认值:false.keyProperty(仅对插入和更新有用)唯一标记一个属性,MyBatis会通过getGeneratedKeys的返回值或者通过插入语句的selectKey子元素设置它的键值,默认:设置。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表.keyColumn(仅对插入和更新有用)通过生成的键值设置表中的列名,这个设置仅在某些数据库(像PostgreSQL)是必须的,当主键列不是表中的第一列的时候需要设置。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表.databaseId如果配置了databaseIdProvider, MyBatis会加载所有的不带databaseId或匹配当前databaseId的语句;如果带或者不带的语句都有,则不带的会被忽略。插入:

useGenerateKeys=" true "和keyProperty=" id "配合使用,表示id是自增长的字段。注意:参数是用户信息中的变量,不是数据库中的字段

MyBatis之Mapper详解及常用技巧