使用Mybatis开发的步骤

48 阅读3分钟

01-概念

一,数据持久化

1,持久化:数据在瞬时状态(比如内存,缓存)和持久状态(比如:硬盘,数据库)相互转换的过程

2,我们之前血管的持久化技术:IO 序列化,数据库(增删改查).....

二,ORM

1,ORM:object relational mapping对象-关系-映射是数据持久化的一种;

2,我们在编写程序时,是以面向对象的方式处理数据,在保存数据中却以非关系型数据库的形式存储,即:在java对象和非关系数据库之间建立的一种对立关系。

三,Mybatis

1,其前身是ibatis,原来是 Apache,2010年迁移到了Google,并且改名Mybatis,2013年迁移到GitBub。

2,是一种基于ORM技术的持久化框架之一(另一个是Hibernate),在java对象和数据库的表直接建立一种映射关系

3,通过mybatis可以建立sql关系映射,是对JDBC代码的简化和替换

4,当前版本是3.5.9 发布于2021年12月,我们目前的版本是3.4.0

开发步骤

一,使用Mybatis开发的步骤:

1,在pom.xml中添加项目需要依赖:mybatis,JDBC,log4j,junit

2,创建mybatis的核心配置文件:mybateis-config.xml;

3,创建pojo实体类

4,创建SQL映射文件XXXMapper.xml; XXX:业务模块(用户,订单,商品)

5,创建测试类

Mybatis核心对象

一,核心要素:

1,核心配置文件:mybatis-config.xml;

2,SQL映射文件:XXXMapper.xml;进行一个SQL语句的映射

3,核心对象:SQLSessionFactorBuilder,SQLSessionFactor,SQLSession

二,核心对象:

1,sqlSessionFactoryBuilder

通过buiid(InputStream||Reader||Configuration)方式创建多个SqlSessionFactory;

最大特点是:用过即丢:一旦创建了session工厂后,此类就不需要存在了,因此它的最佳作用域是方法内部,即局部变量;

2,SqlSessionFactory

通过openSession(boolean)创建多个sqlSession;参数boolean=true时,代表关闭事务管理(自动提交,默认);=false时,代表开启事务管理(自动提交,默认);=false时,代表开启事务管理;

SqlSessionFactory是每个Mybatis程序的核心。一旦创建,就会在整个程序的运行过程始终存在,并且也不建议多次创建。因此,它的作用域是Application,即随着程序的生命周期一同存在。

这种在整个过程运行期间,有且仅有 一个实例“的模式,即为单例模式;

3,SqlSession

用于执行持久化操作,类似与JDBC技术中的Connection对象。它提供了执行SQL语句的所有方法;通过它可以获取到Mapper接口的实例,进而执行接口中的方法;通过它可以获取到Mapper接口的实例,进而执行接口中的方法;

sqlSession对应这程序与数据库的一次会话,每次访问数据时时都要创建它,且会话必须关闭

每个线程都有自己的sqlsession实例,不能被共享,也是线程不安全的;

关于增删改 注意点:

1,该类型的操作默认返回的是受影响的行数,所有Dao接口中的方法一般返回int;

2,,,标签没有resultType属性;

3,这三类操作都会更新数据,所以我们需要加入事务管理机制,具体步骤

(1)在try块中执行完相应的方法后,需要通过SqlSession.commit()提交操作;

(2)还需要在catch块中加入SqlSession.rollback()进行回滚操作;并将受影响的行数归零;