mybatis是什么?有什么特点?
它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低什么是ORM?
Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的user类,去对应数据库中的一张user表,类中的属性和表中的列一一对应。user类就对应user表,一个user对象就对应user表中的一行数据
为什么这么说mybatis是半自动的ORM框架?
我们用mybatis进行开发,需要手动编写SQL语句。而全自动的ORM框架,如hibernate,则不需要编写SQL语句。用hibernate开发,只需要定义好ORM映射关系,就可以直接进行CRUD操作了。由于mybatis需要手写SQL语句,所以它有较高的灵活性,可以根据需要,自由地对SQL进行定制,也因为要手写SQL,当要切换数据库时,SQL语句可能就要重写,因为不同的数据库有不同的方言(Dialect),所以mybatis的数据库无关性低。虽然mybatis需要手写SQL,但相比JDBC,它提供了输入映射和输出映射,可以很方便地进行SQL参数设置,以及结果集封装。并且还提供了关联查询和动态SQL等功能,极大地提升了开发的效率。并且它的学习成本也比hibernate低很多
学习mybatis需要快速入门
只需要通过如下几个步骤,即可用mybatis快速进行持久层的开发
编写全局配置文件
编写mapper映射文件
加载全局配置文件,生成SqlSessionFactory
创建SqlSession,调用mapper映射文件中的SQL语句来执行CRUD操作
原生开发示例
在本地虚拟机mysql上创建一个库base_admin
,并在里面创建一张user表
打开IDEA,创建一个mybatis项目
1.导入依赖的jar包
2.创建一个po类
3.编写mapper映射文件(编写SQL)
4.编写数据源properties文件
5.编写全局配置文件(主要是配置数据源信息)
6.编写dao类
测试
第一步:创建包后类:类名为test等等。。
第二步:添加Jar包:
hamcrest-all-1.3.jar :是一个为了测试为目的,且能组合成灵活表达式的匹配器类库,是Junit4的所
依赖的Jar包
junit-4.12.jar :Junit4的Jar包