mybatis XML方式的基本用法
2018-01-13 16:54
295 查看
一、前言:
MyBatis的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的XML文件就显得相对简单,如果将其与具有相同功能的JDBC代码进行对比,就会发现使用这种方法节省了将近95%的代码量,mybatis就是针对SQL构建的,并且比普通的方法做的更好。
mybatis3.0支持接口调用方式,mybatis使用Java的动态代理可以直接通过接口来调用相应的方法,不需要提供接口的实现类。更不需要在实现类中使用SqlSession以通过命名空间间接调用。当有多个参数的时候,通过参数注解@Param设置参数的名字省去了手动构建Map参数的过程,尤其在Spring中使用的时候,可以配置为自动扫描所有的接口类,直接将接口注入到需要用到的地方。
二、XML规则:
XML中的select标签的id属性值和定义的接口方法名是一样的。XML和接口的命名符合如何规则:
1、当只使用XML而不使用接口的时候,namespace的值可以设置为任意不重复的名称
2、标签的id属性值在任何时候都不能出现英文句号".",并且同一个命名空间下不能出现重复的id
3、因为接口方法是可以重载的,所以接口中可以出现多个同名但参数不同的方法,但是XML中的id值不能重复,因而接口中的 所有同名方法都对应着XML中的同一个id的方法。
三、常用便签和对应的属性
1、select标签
<select>:查询映射语句使用的标签。
id:命名空间中唯一的标识符,可以用来代表这条语句。将SQL语句封装到mappedStatement对象中,所以id称为statement的id。
parpmeterType:指定输入参数的类型,可以是简单类型,也可以是pojo类型
#{}:预编译参数的一种方式,表示一个占位符号
${}:表示一个拼接符号,会引起SQL注入,不建议使用
resultType:在映射文件中通过resultType指定输出结果的类型
resultMap:用于设置返回值的类型和映射关系
2、resultMap标签
用于配置Java对象的属性和查询结果列的对应关系,通过resultMap中配置的column和property可以将查询列的值映射到type对象的属性上。
id:必填,并且唯一。在select标签中,resultMap指定的值即为此处Id所设置的值。
type:必填,用于配置查询列所映射到的Java对象类型。
extends:选填,可以配置当前的resultMap基础自其它的resultMap,属性值为基础resultMap的id。
以上是resultMap的属性,resultMap包含的所有标签如下:
id:一个id结果,标记结果为id(唯一值),可以帮助提高整体性能。
result:注入到Java对象属性的普通结果。
association:一个复杂的类型关联,许多结果将包成这种类型。
collection:复杂类型的集合
接着来看一下id和result标签包含的属性
column:从数据库中得到的列名,或者是列的别名。
property:映射到列结果的属性
javaType:一个Java类的完全限定名,或一个类型别名。
jdbcType:列对应的数据库类型。
三、mybatis 注解
MyBatis注解方式就是将SQL语句直接写在接口上。这种方式的优点是,对于需求比较简单的系统,效率更高。缺点是,当SQL有变化时都需要重新编译代码,一般情况下不建议使用注解方式。
四、mybatis和Hibernate
Hibernate是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序写sql,sql语句自动生成。对sql语句进行优化,修改比较困难。
mybatis:专注是sql本身,需要程序员自己编写SQL语句,SQL修改,优化比较方便。mybatis是一个不完全的ORM框架,虽然程序员自己写SQL,mybatis也可以实现映射(输入映射、输出映射)
Hibernate应用场景:
适用于需求变化不多的中小型项目,比如后台管理系统,ERP、ORM、OA(这些东西都是成型的东西,变化少)
mybatis应用场景:
适用于需求变化较多的项目,比如互联网项目等。
企业进行技术选型,以低成本,高回报作为技术选型的原则。根据项目组的技术力量进行选择。
MyBatis的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的XML文件就显得相对简单,如果将其与具有相同功能的JDBC代码进行对比,就会发现使用这种方法节省了将近95%的代码量,mybatis就是针对SQL构建的,并且比普通的方法做的更好。
mybatis3.0支持接口调用方式,mybatis使用Java的动态代理可以直接通过接口来调用相应的方法,不需要提供接口的实现类。更不需要在实现类中使用SqlSession以通过命名空间间接调用。当有多个参数的时候,通过参数注解@Param设置参数的名字省去了手动构建Map参数的过程,尤其在Spring中使用的时候,可以配置为自动扫描所有的接口类,直接将接口注入到需要用到的地方。
二、XML规则:
XML中的select标签的id属性值和定义的接口方法名是一样的。XML和接口的命名符合如何规则:
1、当只使用XML而不使用接口的时候,namespace的值可以设置为任意不重复的名称
2、标签的id属性值在任何时候都不能出现英文句号".",并且同一个命名空间下不能出现重复的id
3、因为接口方法是可以重载的,所以接口中可以出现多个同名但参数不同的方法,但是XML中的id值不能重复,因而接口中的 所有同名方法都对应着XML中的同一个id的方法。
三、常用便签和对应的属性
1、select标签
<select>:查询映射语句使用的标签。
id:命名空间中唯一的标识符,可以用来代表这条语句。将SQL语句封装到mappedStatement对象中,所以id称为statement的id。
parpmeterType:指定输入参数的类型,可以是简单类型,也可以是pojo类型
#{}:预编译参数的一种方式,表示一个占位符号
${}:表示一个拼接符号,会引起SQL注入,不建议使用
resultType:在映射文件中通过resultType指定输出结果的类型
resultMap:用于设置返回值的类型和映射关系
2、resultMap标签
用于配置Java对象的属性和查询结果列的对应关系,通过resultMap中配置的column和property可以将查询列的值映射到type对象的属性上。
id:必填,并且唯一。在select标签中,resultMap指定的值即为此处Id所设置的值。
type:必填,用于配置查询列所映射到的Java对象类型。
extends:选填,可以配置当前的resultMap基础自其它的resultMap,属性值为基础resultMap的id。
以上是resultMap的属性,resultMap包含的所有标签如下:
id:一个id结果,标记结果为id(唯一值),可以帮助提高整体性能。
result:注入到Java对象属性的普通结果。
association:一个复杂的类型关联,许多结果将包成这种类型。
collection:复杂类型的集合
接着来看一下id和result标签包含的属性
column:从数据库中得到的列名,或者是列的别名。
property:映射到列结果的属性
javaType:一个Java类的完全限定名,或一个类型别名。
jdbcType:列对应的数据库类型。
三、mybatis 注解
MyBatis注解方式就是将SQL语句直接写在接口上。这种方式的优点是,对于需求比较简单的系统,效率更高。缺点是,当SQL有变化时都需要重新编译代码,一般情况下不建议使用注解方式。
四、mybatis和Hibernate
Hibernate是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序写sql,sql语句自动生成。对sql语句进行优化,修改比较困难。
mybatis:专注是sql本身,需要程序员自己编写SQL语句,SQL修改,优化比较方便。mybatis是一个不完全的ORM框架,虽然程序员自己写SQL,mybatis也可以实现映射(输入映射、输出映射)
Hibernate应用场景:
适用于需求变化不多的中小型项目,比如后台管理系统,ERP、ORM、OA(这些东西都是成型的东西,变化少)
mybatis应用场景:
适用于需求变化较多的项目,比如互联网项目等。
企业进行技术选型,以低成本,高回报作为技术选型的原则。根据项目组的技术力量进行选择。
相关文章推荐
- mybatisXML方式的基本用法
- 三种xml解析方式的基本用法
- 自学Mybatis(三)-----Mybatis注解方式的基本用法
- Mybatis(二)--Mybatis的XML和注解基本用法
- XML的基本用法(转)
- 学习笔记-Mybatis(三)--XML方式的一对多,多对一,多对多关系
- Springboot 中同时使用mybatis注解和springbean-xml配置方式
- springboot整合mybatis使用阿里(阿里连接池)和xml方式
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- MyBatis学习笔记-基本用法
- 关于mybatis两种连接mysql的方式(注解和xml配置)
- MyBatis 3(2)实体映射 & CRUD 操作(XML/注解方式)
- mybatis一些简单的基本用法
- mybatis中不用mapper.xml方式使用动态sql
- maven pom.xml基本用法
- MyBatis mapper.xml配置一对一关系映射的几种方式整理
- struts1.2中的tiles-defs.xml 文件的基本用法
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)