MyBatis是什么?
1.mybatis是一个持久层的框架,是apache下的顶级项目,现在已经托管到GitHub上了
2.mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。
3.主要关注点在输入映射和输出映射中
MyBatis执行过程
MyBatis和Hibernate的区别
hibernate:
1.hibernate:是一个标准ORM框架(对象关系映射)。入门门槛较高的,不需要程序写sql,sql语句自动生成了,这样就难以对sql语句进行优化、修改比较困难的。
2.所以hibernate适用与需求变化不多的中小型项目,比如:后台管理系统,erp、orm、oa。。
mybatis:
1.专注是sql本身,需要程序员自己编写sql语句,sql修改、优化比较方便。所以个人认为mybatis是一个不完全 的ORM框架,毕竟它也有输入映射、输出映射。
2.适用与需求变化较多的项目,比如:互联网项目。
MyBatis环境搭建
1.准备要导入的jar包(GitHub上可以下载)
我整理之后导入的包是这些
2.创建一个项目(普通java项目,实现一个对用户表的增删改查操作
1.写个实体类(po类)(getter和setter方法以及同String方法(测试用))
2.根据po类创建一个表
3.编写SqlMapConfig配置文件(SqlMapConfig)(名字不是固定的,放在src下)
4.根据需求编写相应的映射文件(User.xml)(这是一种命名方法,还有另一种以后介绍)
5.导入log4j.properties日志配置文件
好了环境已经搭建好了,那么接下来就一一实现增删改查操作
查询一条记录
映射文件这样写
先手动向数据库插入一条记录
现在去写一个测试类
结果
查询多条记录(list集合)
映射文件这样写(实现一个根据名字的模糊查询,这可能查出多条记录,如果只有一条记录也是可以用list集合的,只不过list集合里面只有一条记录而已,但是反过来就不行)
我们现在手动添加一点儿类似的数据进去
测试类
结果
插入数据
映射文件这样写
测试类(改变数据库的操作要手动提交事务,没有开启自动提交)
在这里插入图片描述
结果
这里还有一个特殊的需求,那就是如何得到插入数据的id值?这个在以后的级联操作中很有用
此时映射配置文件这样写
修改一下测试类
结果
删除数据
映射文件
测试类
结果
更新数据
映射文件
测试类
结果
这个mybatis果然比hibernate更加简单,而且个性化高,怪不得外面很多公司在用,我应该早点儿过来学的哈哈