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);
}
这种是mybatis 提供的原始调用方式 有什么问题?
我们可以明显的看到 sqlId 是一个Mapper路径+方法 万一写错了呢?
所以我们有了mybatis调用的第二种方法
2、通过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是不被解析器解析的文本。文本内的标签不会被当作标记。实体不会被展开。