mybatis简单介绍--随本小记

本文介绍了MyBatis框架,它是持久层开源项目,适合需求多变、数据模型不固定的项目。阐述了其架构,包括配置文件、会话工厂和会话。介绍了开发DAO的两种方法及规则,还提及resultType和resultMap的输出映射,以及动态SQL的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis是什么?

mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架,mybatis提供输入和输出的映射,需要程序员自己写sql语句,mybatis重点对 sql语句的灵活操作。

适合用于:需求变化频繁, 数据模型不固定的项目,例如:互联网项目。

 

mybatis架构?

SqlMapConfig.xml(名称不固定),配置内容:数据源、事务、properties、typeAliases、settings、mapper配置。

 

SqlSessionFactory--会话工厂,作用是创建SqlSession,实际开发中以单例模式管理 SqlSessionFactory。

 

SqlSession--会话,是一个面向用户(程序员)的接口,使用mapper代理方法开发是不需要程序员直接调用sqlSession的方法。是线程不安全,最佳适用场合方法体内。

 

mybatis开发dao的方法:

1、原始dao开发方法,需要程序员编写dao接口和实现类,此方法在当前企业中还有使用,因为ibatis使用的就是原始dao开发方法。

2、mapper代理方法,程序员只需要写mapper接口(相当于dao接口),mybatis自动根据mapper接口和mapper接口对应的statement自动生成代理对象(接口实现类对象)。

开发需要遵循规则:

 1)mapper.xml中namespace是mapper接口的全限定名

 2)mapper.xml中statement的id为mapper接口方法名

 3)mapper.xml中statement的输入映射类型(parameterType)和mapper接口方法输入参数类型一致

 4) mapper.xml中statement的输出映射类型(resultType)和mapper接口方法返回结果类型一致

 

resultType和resultMap都可以完成输出映射:

resultType映射要求sql查询的列名和输出映射pojo类型的属性名一致

resultMap映射时对sql查询的列名和输出映射pojo类型的属性名作一个对应关系。

 

动态sql:

#{}和${}完成输入参数的属性值获取,通过OGNL获取parameterType指定pojo的属性名。

    #{}:占位符号,好处防止sql注入

${}:sql拼接符号

if

where

foreach

 

resultType:要自定义pojo 保证sql查询列和pojo的属性对应,这种方法相对较简单,所以应用广泛。

resultMap:使用association完成一对一映射需要配置一个resultMap,过程有点复杂,如果要实现延迟加载就只能用resultMap实现 ,如果为了方便对关联信息进行解析,也可以用association将关联信息映射到pojo中方便解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值