安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > DataBase > Mybatis框架介绍-1

Mybatis框架介绍-1

时间:2017-06-02来源:未知 作者:wokemeng点击:
1. Mybatis框架架构 Mybatis框架架构讲解(架构图如下图所示): (1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语

1. Mybatis框架架构

//安云网咨询系统

Mybatis框架架构讲解(架构图如下图所示):

//ANYUN.ORG

(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

//copyright AnYun.ORG

(2) SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

//本文来自安云网

(3) SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。 //本文来自安云网

(4) 结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。 //内容来自AnYun.ORG

//内容来自AnYun.ORG

Mybatis架构图

//内容来自AnYun.ORG

2. JDBC预编译模式 //安云网咨询系统

Mybatis框架作为一款半自动化的持久层框架,其SQL语句都需要我们自己手动编写,此时就需要按照安全编码规范进行开发,以防止SQL注入漏洞的产生。 //安云网咨询系统

针对上一节中所举的例子,应用Mybatis框架SQL语句安全写法(即JDBC预编译模式)可以写为:

//安云网,anyun.org

select * from news where id=#{id},这种写法可以很好地避免SQL注入漏洞的产生。

//copyright AnYun.ORG

3. 动态拼接SQL语句

//ANYUN.ORG

如果在开发过程中没有采用JDBC的预编译模式,如我们将上述SQL语句写为:select * from news where id=${id},这种写法就产生了SQL语句的动态拼接。因为”${xxx}”这样格式的参数会直接参与SQL语句的编译,从而不能避免SQL注入攻击。 //安云网,anyun.org

  //安云网咨询系统

摘录于:http://www.open-open.com/lib/view/open1474963603800.html //内容来自AnYun.ORG


//内容来自AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容