MyBatis持久化框架
2016-02-29 14:25
260 查看
mybatis是一个持久层框架apache下的顶级项目,mybatis托管到goolecode下,再后来托管到github下,mybatis让程序员主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足需要sql语句,mybatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果返回java对象。
输入映射,parameterType在映射文件中通过parameterType指定输入参数的类型;输出映射,resultType在映射文件中通过resultType指定输出结果的类型。注意一点是,#{}表示的是一个占位符,${}表示的是一个拼接符,可能会引起sql注入,不建议使用$符号。
查询方法:
selectOne和SelectList
selectOne表示查询出一条记录进行映射,如果使用selectOne可以实现使用selectList也可以实现
selectList表示查询出一个列表,多条记录,进行映射,如果使用selectList查询多条记录,不能使用selectOne来查询映射。
与Hibernate的区别
hibernate:入门门槛比较高,一个标准的ORM框架(对象关系映射)不需要程序写sql,sql语句自动生成了。使
用hibernate对sql语句进行优化、修改比较困难。hibernate适用于:需求变化不多的,中小型项目,比如后台管理系统,erp,OA,orm。
mybatis:专注是sql本身,需要程序员自己书写sql语句,sql语句修改和优化比较方便
mybatis是一个不完全的orm框架,mybatis也可以实现映射(输入映射,输出映射)
应用场景:适用于需求变化较多的,比如:互联网项目。
企业进行技术选型,以低成本,高回报作为技术选型的原则。根据项目组的技术力量进行项目抉择。
Mybatis的框架图
输入映射,parameterType在映射文件中通过parameterType指定输入参数的类型;输出映射,resultType在映射文件中通过resultType指定输出结果的类型。注意一点是,#{}表示的是一个占位符,${}表示的是一个拼接符,可能会引起sql注入,不建议使用$符号。
查询方法:
selectOne和SelectList
selectOne表示查询出一条记录进行映射,如果使用selectOne可以实现使用selectList也可以实现
selectList表示查询出一个列表,多条记录,进行映射,如果使用selectList查询多条记录,不能使用selectOne来查询映射。
与Hibernate的区别
hibernate:入门门槛比较高,一个标准的ORM框架(对象关系映射)不需要程序写sql,sql语句自动生成了。使
用hibernate对sql语句进行优化、修改比较困难。hibernate适用于:需求变化不多的,中小型项目,比如后台管理系统,erp,OA,orm。
mybatis:专注是sql本身,需要程序员自己书写sql语句,sql语句修改和优化比较方便
mybatis是一个不完全的orm框架,mybatis也可以实现映射(输入映射,输出映射)
应用场景:适用于需求变化较多的,比如:互联网项目。
企业进行技术选型,以低成本,高回报作为技术选型的原则。根据项目组的技术力量进行项目抉择。
Mybatis的框架图
相关文章推荐
- 点击发送后图片查看大图的实现思路
- 技术领导要不要写代码?
- Cesium.js 加载3D模型
- 离屏渲染学习笔记
- WCF简介
- 23种设计模式(17):备忘录模式
- OpenCV学习之阈值化
- SQL Server 不清空数据,修改数据库字段、结构,阻止保存要求重新创建表的更改
- springMVC+Java验证码完善注册功能
- Android - BroadcastRecevier
- redis学习
- jspwiki-2.10.1的权限配置与使用
- cesium 中地图发生了平移,放缩,旋转等动作所要执行的动作
- Android View坐标getLeft, getRight, getTop, getBottom
- 如何将jpg转换成pdf图片格式
- 浅谈web网站架构演变过程
- bootstrap基本html 模板
- Google推荐的图片加载库Glide介绍
- Apple Pay强势来袭,开发者应做的事情
- C++常用的智能指针