mybatis的简介
- mybatis 是一种持久层框架,也属于ORM映射,前身是ibatis.
- 相比于hibernate,hibernate为全动自动化,配置文件书写之后不需要书写SQ;L语句,但欠缺灵活性,很多时候需要优化
- mybiatis为半自动化,徐娅自己写SQL语句,需要自己定义映射,增加了程序员的一些操作,但带来了设计上的灵活,并且也支持hibernate的一些特性,如延迟加载,缓存,映射等。
- 对数据库的兼容性比hibernate查,移植性不好,但可编写灵活和高性能的SQL语句。
##mybatis组成:
- 核心对象:SqlSessionFactory SqlSession
- 配置文件:mybatis.cfg.xml。相当于hibernate的hibernate.cfg.xml;
- 对个类配置文件:user.xml相当于hibernate的映射类文件
- 支持注解配置
### mybatis设置URL时,加上allowMultiQueries=true表示允许一个语句块中添加多条SQL语句
###设置命名空间
在orm文件根目录下加入
<mapper namespace="user">
设置命名空间
命名空间的作用:
- 更好地分类SQL语句块,更好维护
- 防止SQL语句块重名
## #和$的区别:
- #在生成SQL时,对于字符类型参数,会拼装引号
- $在生成SQL时,不会拼装引号,可用于order by之类的参数拼装
<select id="findByName" resultMap="userMap">
select * from t_user where u_userName like '%${userName}%';
</select>
List list = session.selectList("user.findByName", map);
CDATA:用于把整段文本解释为纯字符数据而不是标记的情况,包含大量<、>、&或者"字符,CDATA节中的所有字符都会背当做元素字符数据的常量部分,而不是XML标记
语法:<![CDATA[ ---]]>