- mybatis时一种持久层框架,术语ORM映射。前身时ibatis。
- 相比于hibrnate,hibernate为全自动化,配置文件书写之后不需要书写SQL语句,但欠缺灵活,很多时候需要优化。
- mybiatis为半自动化,需要自己书写SQL语句,需要自己定义映射。增加了程序员的一些操作,但带来了设计上的灵活,并且也支持hibernate的一些特性,如延迟加载,缓存,映射等。
- 对数据库的兼容性比hibernate差。移植性不好,但可编写高性能和灵活的SQL语句。
- mybatis组成:
- 核心对象:SqlSessionFactory SqlSession
- 配置文件:mybatis.cfg.xmlxiangdangyuhibernate的hibernate.cfg.xml
- 多个类配置文件:user.xml相当于hibernate的映射类文件
- 支持注解配置。
amp;allowMultiQueries=true 表示mybatis设置URL时,允许一个语句块中添加多条SQL语句。
mybatis.xml命名空间
在orm文件根目录下加入<mapper namespace=“user”>设置命名空间
命名空间的作用:更好地分类SQL语句块,更好维护。防止SQL语句块重名。
在设置里命名空间后,name在相应的程序调用中,方可以使用“命名空间.语句块名”进行调用相应的sql语句。
#和$符号在这当中的区别:
#在生成SQL时,对于字符类型,会装引号。
$在生成SQL时,不回拼装引号,可用于order by之类的参数拼装。
<select id="findByName" parameterType="String" resultMap="messageMap">
select * from t_message where userName like '%${name}%';
</select>