mybaitis基础---原生调用的2种方式

https://mybatis.org/mybatis-3/zh/getting-started.html ----中文网站

mybatis原生调用的2种方式

底层原理:mybatis本质是对JDBC的封装 封装了一个会话slqsession 对数据连接  并定义了增删改查的方法

mybaits 有2个配置文件配置文件

mybatis-config.xml  全局映射器

*Mapper.xml  映射器 

1、通过 session .sleectOne( nameSpace+method) 调用

定义sqlSeesionFactory 工厂

private SqlSeesionFactory  sqlsessionFactory;

加载配置文件

@Before

private void preper(){

//拿到配置文件

InputStream inputStream = Resource.getResourceAsStream("mybatis-config");

//解析文件 得到一个工厂 

sqlsessionFactory =new SqlSeesionFactoryBuild().bulid(inputStream );

}

//执行sql 

public void Test(){

//创建一个数据库连接会话

SqlSession session = sqlsessionFactory .openSession();

//执行select  参数(sqlId 、params )

Order order = session .sleectOne("com.java.mapper.OrderMapper.selectById",orderId);

}

通过调用stateMentId 实现

这种是mybatis 提供的原始调用方式 有什么问题?

我们可以明显的看到 sqlId 是一个Mapper路径+方法 万一写错了呢?

所以我们有了mybatis调用的第二种方法

2、通过sqlSession.GetMapper(OrderMapper.class).selectById(id) ;  调用

通过sqlSession.GetMapper(OrderMapper.class).selectById(id);

mybatis特性总结

### mybatis的特点

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

2.相比于hibernatehibernate为全自动化,配置文件书写之后不需要书写sql语句,但是欠缺灵

活,很多时候需要优化;

3.mybatis为半自动化,需要自己书写sql语句,需要自己定义映射。增加了程序员的一些操作,

但是带来了设计上的灵活,并且也是支持hibernate的一些特性,如延迟加载,缓存和映射等;

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

### mybatis的组成

1.核心对象:SqlSessionFactory SqlSession

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

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

4.支持注解配置

### mybatis配置

1.mybatis设置url时,加上&allowMultiQueries=true,表示允许一个语句块中添加多条SQL语句;

2.mybatis.xml的命名空间

1.在orm文件根目录下加入设置命名空间

2.作用:更好的将sql语句块分类,更好维护;防止sql语句重名;

3.mybatis中#和$的差别

1.#在生成sql语句时,对于字符类型参数会拼接引号

2.$在生成sql语句时,不会拼接引号,可用于order by之类的参数拼装

### XML知识点

1.CDATA是不被解析器解析的文本。文本内的标签不会被当作标记。实体不会被展开。

mybatis特性

你可能感兴趣的:(mybaitis基础---原生调用的2种方式)