Mybatis

mybatis是支持普通SQL查询、存储过程和高级映射的优秀持久层框架。

目录

mybatis中$和#的区别?

mybatis的一对一和一对多关系配置

Mybatics批量插入

Mybatis的执行原理


mybatis中$和#的区别?

a、#{}是预编译处理,${}是字符串替换

b、#{}能防止SQL注入

c、#{}相当于占位符,${}替换成变量的值

d、$方式一般用于传入数据库对象,例如传入表名。MyBatis排序时使用order by 动态参数时需要注意,用$。

mybatis的一对一和一对多关系配置

  <resultMap>
<!--        定义User里面Role对象的映射方式,这里假定为一个User对应一个Role-->
        <association property="role" javaType="com.hj.pojo.Role">
            <id property="roleId" column="role_id" />
            <result property="name" column="rname" />
            <result property="state" column="state" />
        </association>
<!-- 定义User里面Role集合的映射方式,这里一个User对应多个Role-->
        <collection property="roles" ofType="com.hj.pojo.Role">
            <id property="roleId" column="role_id" />
            <result property="name" column="rname" />
            <result property="state" column="state" />
        </collection>
    </resultMap>

Mybatics批量插入

 <insert id="insertBatch">
    <foreach collection ="list" item="user" > 
         INSERT INTO t_user (id, name, del_flag) 
         VALUES (#{user.id}, #{user.name}, #{user.delFlag}) 
     </foreach > 
 </insert>

 Mybatis的执行原理

  1. 读取Mybatis配置文件
  2. 加载映射文件
  3. 构造会话工厂 sqlsessionFactory
  4. 创建会话对象 sqlsession
  5. Executor 执行器。
  6. 底层封装对象(输入参数类型,pojo)(输出参数类型,pojo)
  7. 操作Mysql
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值