Mybatis的认识及传参
来源:互联网 发布:大数据需要什么设备 编辑:程序博客网 时间:2024/06/05 18:15
先来看下Mybatis的百度解释:
Mybatis是一个支持普通SQL查询、存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC的代码和参数的手工设置以及对结果集的检索封装。Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
Mybatis的核心配置文件是Configuration.xml,下面上个Mybatis的结构图:
说实话,这图我也不太懂,百度有它的解释,粘贴如下:
框架架构讲解:
(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。
(3)SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。
(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。
接下来说下Mybaits的几种传参方法:
如果只有一个基本类型的参数,直接传递就好,例:#{nodeId}。如果有2个或2个以上,传参有三种方式。
1.用#{0}代表第一个参数,#{1}代表第二个参数,以此类推,但这些参数必须是同一类型,例如都是String或都是int。
2.用HashMap传参,将参数都放置到HashMap中进行传递,不同类型的参数也行。
3.用bean对象传参,将参数加到new后的对象中,传参时传递对象即可。
Mybatis返回多个参数要写resultMap。
oracle数据库Mybatis返回插入的主键方法:
<selectKey resultType="int" order="BEFORE" keyProperty="Id">
SELECT SEQ_STUDENT.NEXTVAL AS ID FROM DUAL
</selectKey>
插入参数时要带参数类型,例:#{Id,jdbcType=BIGINT}。
Mybatis插入空值时,需要指定jdbcType,jdbcType有以下几种类型:
BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED TINYINT REAL VARCHAR BINARY BLOB NVARCHAR SMALLINT DOUBLE LONGVARCHAR
VARBINARY CLOB NCHAR INTEGER NUMERIC DATE LONGVARBINARY
BOOLEAN NCLOB BIGINT DECIMAL TIME NULL CURSOR
- Mybatis的认识及传参
- MyBatis框架的认识
- 认识Mybatis
- Mybatis - #{}及${}传值的区别
- Mybatis的传参
- 【mybatis】认识selectKey
- 认识mybatis归纳整理
- mybatis笔记-基本认识
- myBatis初步认识(一)
- mybatis的注解及使用方法
- Mybatis中#{}和${}传参的区别及#和$的区别小结
- 2017.8.18学习Mybatis中#{}和${}传参的区别及#和$的区别小结
- Mybatis中#{}和${}传参的区别及#和$的区别小结
- Mybatis中#{}和${}传参的区别及#和$的区别小结
- 新手对COM的认识及疑惑
- 关于 OO 及虚拟机的简单认识
- 希望认识编程及商业界的朋友
- 魔方及想认识的一个朋友
- Android(省市区三级联动Dialog)Demo
- python学习
- Laravel throttle中间件失效问题
- HIVE Row_Sequence 实现列自增长
- 编写windows 服务(c++)
- Mybatis的认识及传参
- cocos2d-x加载 csb 文件
- asp.net 登录超时跳转到登录页 后台实现
- PF_RING 6.0.2在Redhat 6.3 x86_64上编译和安装
- 在亚马逊云EC2上创建root用户,并使用root用户登录
- Python 小练习 素数检查
- 打印sockaddr_in 中的IP地址信息
- 树:B树、B+树、B*树
- html5 ajax文件上传