您的位置:首页 > 其它

MyBatis 学习笔记

2017-11-06 18:02 134 查看
ORM模型:数据库的表和POJO的映射关键模型。plain ordinary java object.

Hiberate:全表映射模型,对jdbc封装较高。不需要SQL,需要使用HQL。

pojo + 映射关系

hbm.xml:描述pojo 和数据库表的映射关系。

Hiberate,最致命的是性能问题,全表映射。存储过程不支持。

MyBatis:半自动映射框架 ,我们需要提供映射文件和SQL语句。

SQL+映射关系+POJO。

MyBatis的基本构成

SqlSessionFactoryBuilder :构造器,根据配置信息或者代码生成->SqlSessionFactory:工程结构生成-> SqlSession: 一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口。

SQL Mapper :Java接口+XML文件(映射器)

MyBatis应用都是以SqlSessionFactory的实例为中心。主要任务创建SqlSession(类似于jdbc的Connection).

映射器:

package com.learn.chapter2.mapper;
import com.learn.chapter2.po.Role;
public interface RoleMapper{
public Role getRole(Long id);
}


<mapper namespace ="com.learn.chapter2.mapper.RoleMapper">
<select id ="getRole" parameterType = "long" resultType ="role">
select id,role_name as roleName,note from t_role where id =#{id}
</select>
</mapper>


RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);
System.out.println(role.getRoleName):


xml 的命名空间和我们定义的接口的全限定名一致。id 和我们接口方法一致。 parameterType 传递的参数,resultType 返回类型,由于id,roleName,note 和pojo的属性名称一致,MyBatis 自动映射。

RoleMapper 没有实现类,但是MyBatis 会为这个接口生成代理类对象,根据接口全路径+方法名,找到对应的XML文件去完成它所需要的任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis