mybatis的标签以及参数传递

MyBatis是一个优秀的持久层框架,简化了JDBC代码和手动参数设置。本文介绍了MyBatis的XML配置和注解映射,并详细讲解了插入记录返回主键、动态SQL标签如if、where、choose等的使用,以及参数传递的多种方式,包括匿名参数、@param注解、多个基本类型、POJO对象、JSON参数、集合类参数和对象中集合字段的传递。
摘要由CSDN通过智能技术生成

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。

MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.

mybatis原是apache的一个开源项目iBatis, 2010年6月这个项目由apache software foundation 迁移到了google code,随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis ,代码于2013年11月迁移到Github(下载地址见后)。

iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)

下面是一些简单的增删改查的标签的使用:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis
MyBatis中的"association"标签也可以用于传递常量参数。在使用"association"标签时,可以在其内部使用"resultMap"标签来定义一个中间结果集,然后在中间结果集中定义常量参数。 例如,假设有一个订单(Order)对象和一个客户(Customer)对象,它们之间建立了关联关系,其中一个订单对象可能需要传递一个常量参数(例如订单的状态),可以在"association"标签内部使用"resultMap"标签定义一个中间结果集,然后在中间结果集中定义一个常量参数。 示例代码如下: ``` <resultMap id="orderResultMap" type="Order"> <id property="id" column="id"/> <association property="customer" column="customer_id" select="findCustomerById"> <resultMap id="customerResultMap" type="Customer"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="phone" column="phone"/> </resultMap> </association> <result property="status" column="status"/> </resultMap> <select id="findOrderById" resultMap="orderResultMap"> SELECT o.id, o.customer_id, o.status, c.name, c.phone FROM orders o INNER JOIN customers c ON o.customer_id = c.id WHERE o.id = #{id} </select> <select id="findCustomerById" resultMap="customerResultMap"> SELECT id, name, phone FROM customers WHERE id = #{id} </select> ``` 在上面的示例代码中,定义了一个包含常量参数的Order对象,其中常量参数为"status",可以在中间结果集中定义这个常量参数,并在"association"标签中通过select属性调用"findCustomerById"查询方法来获取Customer对象。这样就可以通过"association"标签传递常量参数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值