mabatis-mapperXML标签总结

mapperXML标签总结

  • SQL映射文件的顶级元素
    • insert-映射插入语句
    • update-映射更新语句
    • delete-映射删除语句
    • select-映射查询语句

select标签

<select id="selectPerson" 
resultType="hashmap" resultMap="自定义结构"> SELECT * FROM PERSON WHERE ID = #{id} </select>

这个语句名为selectPerson,接受一个int或integer类型的参数,并返回一个HashMap类型的对象,其中的键是列名,值是结果行中对应值

注意参数的符号#{} ${}

MyBatis创建一个预处理语句(PreparedStatement)参数,在JDBC中,这样的一个参数在SQL中会由一个问号来标识,并传递到一个新的预处理语句中

// 近似的 JDBC 代码,非 MyBatis 代码...
String selectPerson = "SELECT * FROM PERSON WHERE ID=?";
PreparedStatement ps = conn.prepareStatement(selectPerson);
ps.setInt(1,id);
  • select元素允许配置的属性
    • id
      • 在命名空间中唯一的标识符,可以被用来引用这条语句
    • resultType
      • 从这条语句中返回结果的类全限定名或别名
      • 如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身的类型
      • resultType和resultMap之间只能同时使用一个
    • resultMap
      • 对外部resultMap的命名引用
    • timeout
      • 设置在抛出异常前,驱动程序等待数据库返回请求结果的秒速,默认值为依赖数据库驱动
    • statementType
      • 可选STATEMENT,PREPARED或CALLABLE。这回让MyBatis分别使用Statement,PreparedStatement或CallableStatement,默认值为PREPARED

insert,update,delete标签

<insert
  id="insertAuthor"
  statementType="PREPARED"
  keyProperty=""
  keyColumn=""
  useGeneratedKeys=""
  timeout="20">

<update
  id="updateAuthor"
  statementType="PREPARED"
  timeout="20">

<delete
  id="deleteAuthor"
  statementType="PREPARED"
  timeout="20">
  • id
    • 在命名空间中唯一的标识符,可以被用来引用这条语句
  • timeout
    • 设置在抛出异常之前,驱动程序等待数据库返回请求结果的秒速
  • statementType
    • 可选 STATEMENT,PREPARED 或 CALLABLE。这会让 MyBatis 分别使用 Statement,PreparedStatement 或 CallableStatement,默认值:PREPARED。
  • useGeneratedKey
    • 只适用于insert和update
    • 设置为true这会使得MyBatis使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键
  • keyProperty
    • 只适用于insert和update
    • 指定用于存放唯一标识的对象属性
    • MyBatis会使用getGeneratedKeys的返回值或insert语句的selectKey子元素设置它的值,默认值:unset
    • 如果生成列不止一个,可以用逗号分隔多个属性名称
  • keyColumn
    • 只适用于insert和update
    • 设置成生成键值在表中的列名,在某些数据库(如:PostgreSQL)中,当主键列不是表中的第一列的时候是必须设置的,如果生成列不止一个,可以用逗号分隔多个属性名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值