MyBatis 学习笔记

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文件去完成它所需要的任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值