您的位置:首页 > 编程语言 > Java开发

JAVA学习总结三十二

2016-08-07 16:38 197 查看

mybatis

mybatis简介

mybatis是一种持久层框架,也属于ORM映射。前身是ibatis。

相比于hibernate,hibernate为全动自动化,配置文件书写之后不需要书写SQL语句,但欠缺灵活,很多时候需要优化

mybatis为半自动化,需要自己写SQL语句,需要自己定义映射。增加了程序员的一些操作,但带来了设计上的灵活,并且也支持hebernate的一些特性,如延迟加载,缓存,映射等。

对数据库的兼容性比hibernate差。移植性不好,但可编写灵活和高性能的SQL语句

mybatis组成

核心对象:SqlSessionFactory SqlSession

配置文件:mybatis.cfg.xml相当于hibernate的hibernate.cfg.xml

多个类配置文件:user.xml相当于hibernate的映射类文件

支持注解配置

mybatis的配置

<dataSource type="POOLED">
<property name="driver" value="org.gjt.mm.mysql.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="851117"/>
</dataSource>

其中设置URL时,加上allowMultiQueries=true表示允许一个语句块中添加多条SQL语句


mybatis.xml命名空间

设置方法:

在orm文件根目录下加入

<mapper namespace="user">
设置命名空间

作用:

更好地分类SQL语句块,更好维护

防治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是不被解析器解析的文本。文本内的标签不会被当做标记,实体不会被展开。

语法:

<![CDATA[..内容..]]>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息