Mybatis

Mybatis
1.mybatis概述:
一个持久层操作框架.Mybatis与hibernate 使用区别:Hibernate : 可以高度的对jdbc实现封装. 不用编写sql,即可映射操作数据库. 针对复杂的多表关系, 可以方便关联操作.
场景: 当业务实体之间关系关联操作时,hibernate擅长处理. 不擅长: 复杂的业务关联关系.
示例: OA.政府档案,数据管理系统. Jdbc : 其实所有的持久层框架都是以JDBC为基础,进行封装优化.
好处: 单个操作效率高. 缺点: 参数传递,返回值封装. Mybatis :
其实针对jdbc的完美封装, 保留了jdbc的sql编写方式.
优化了参数绑定,返回值封装等缺点.学习成本低.示例: 网上电商, 金融项目, 主体架构:SqlMapConfig.xml(核心配置文件) :
体现SqlSessionFactory,SqlSession.↓Mapper.xml(动态sql语句实现)↓MappedStatement(方便动态加载sql,用于绑定参数,封装返回值).↓DB(数据库)
2. 第一个mybatis程序编写:步骤:
1.创建项目,导入框架.
2.SqlMapConfig配置文件,编写数据库的连接配置.
3.测试数据库连接是否正常.
4.编写Mapper.xml文件中的动态sql.
5.测试sql执行操作是否正常.
3. mybatis框架如何实现dao层编写:如何实现dao层编写:Dao层采用面向接口的方式实现开发: 方便分层开发调用.步骤:
1.提供接口.
2.给接口绑定Mapper.xml实现.
3.给service层提供dao层的接口引用.
4. SqlMapConfig.xml核心配置文件和Mapper映射文件的编写:
4.1: 数据库操作的动态sql: 传参. 返回值.传参: 1.单个基本类型参数传递.指定: parameType=”java.lang.Integer”2.单个引用类型: parameType=”com.hfxt.bean.Student” 3.集合类型: parameType=”java.util.ArrayList”备注: 引用时必须采用list / array 充当引用.map集合直接根据key值实现引用.4.注解方式:test1(@Param(“name”) String name ,@Param(age) String age )
返回值处理:1.基本类型数据值返回: resultType=”java.lang.Integer”
2. 查询返回单个对象:resultType=”com.hfxt.bean.Student”
3. 查询返回对象集合时resultMap = “ RM_Stus ”; 需要定义集合模型进行封装.
4.2:动态sql的编写实现.Sql : 用于抽取片段代码.Include : 用于引入sql片段.
Where : 用于充当where关键字使用.当条件无论是否存在,都将作用.
Trim : 针对前缀与后缀做去除或增加.
If: 可用于条件判断等.Foreach: 用于数据值的遍历.Set : 用于充当set修改关键字.
Choose : 等值判断等. 补充: 在Mapper中编写动态sql时,防止出现大于小于符号,转义:<![CDATA[ age > 20 ]]> #{ 属性 } 获取参数值.并以字符串的形式进行使用. 使用: 就是?占位符传参的方式. ${ 属性 } 获取参数值.并以字符串的形式进行使用.使用: 类似于字符串+号拼接的方式,
4.3: 关系映射操作:
相同点:1. 都需要在类中体现关系.
4. 在Mapper中,采用子查询的方式或连接查询的方式实现在封装中, 采用标签体现即可.
如果子查询:<collection property="" column="" javaType="“select=”" >
注: 需要提供子查询:
select.如果连接查询:


区别:一对多 : 使用时,正常使用即可.多对多 :
切记: 子查询需要两表连接,
连接查询时: 需要三表连接.一对一 : 代替。其他类似于一对多.
5. mybatis与spring整合使用:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值