Java面试——Mybatis

1、JDBC规范流程:

  1. 加载数据库提供驱动类 Class.forName(“com.mysql.jdbc.Driver”)
  2. 创建连接通道 Connection con = DriverManager (此操作需要数据库地址,用户名,密码等数据源信息)
  3. 创建数据库操作对象 PreparedStatement ps = con.prepareStatement(sql命令)
  4. 通过这个操作对象,推送SQL命令到数据库执行并返回处理结果 ps.executeUpdate();ps.executeQuery
  5. 资源销毁

上述流程涉及到的接口有:
1)DriverManager类:驱动
2)Connection接口:连接通道对象
3)Statement接口:交通工具, 数据库操作对象
4)ResultSet接口:用来管理的数据库服务器返回的临时表,结果集对象

这些接口都来自于JDK包中的java.sql包下,既由JDBC定义,而它们的实现由各大数据库厂商提供

2、Mybatis简介:
Mybatis是一款优秀的持久层框架,它的底层对JDBC进行了封装,通过XML或注解完成配置,不用重复创建Connetion、Statement,不用编写关闭资源的代码,几乎消除了所有JDBC代码和参数的手工设置,最后又能将数据库中的数据映射到Java对象中、方便后续操作,大大减轻了使用JDBC的复杂性。

3、Mybatis的工作流程
要说mybatis的工作流程,首先要认识一下mybatis的两个重要接口:
第一个是SqlSessionFactory,这是一个重量级、线程安全的接口,可以复用,它的主要作用是创建SqlSession对象;
第二个是SqlSession接口,这个接口不是线程安全的,每次访问数据库都要获取一个新的sqlSession对象,用完后又要马上关闭;这个接口的实现,可以为dao接口生成实现类对象,用来与数据库完成数据交互。

mybatis的工作流程就是:
1)配置数据源信息;
2)编写dao接口和对应的的mapper.xml文件(dao接口定义了一些操作数据库的方法,mapper文件中是写了相应方法的sql);
3)mybatis提供了一个MybatisUtil工具类,它把SqlSession对象创建的过程进行了封装,调用工具类中的.getSqlSession();方法,即可得到一个sqlSession对象;
4)SqlSession中的.getMapper(xxDao.class);方法,会返回一个dao接口的实现类对象;
5)最后就是在需要的地方,调用dao接口中的方法,完成程序与数据库的交互。

4、Spring集成Mybatis(原理和mybatis的工作流程相同,只是SqlSessionFactory和SqlSession对象不再由Mybatis提供的工具类创建,而是由Spring创建)
1)添加依赖:包括mybatis依赖、mysql依赖、jdbc依赖、druid依赖(可选);
2)在xml文件中添加数据源,同时进行mybatis相关配置;一般会专门为mybatis创建一个配置文件,命名为mybatis.xml,在这个文件中要完成:注册SqlSessionFactoryBean,定义Mapper扫描配置器MapperScannerConfigurer,一般还会配置druid数据库连接池;如果数据源信息放在其他xml文件中,还要引入这个文件的位置。
在这里插入图片描述截图为spring集成mybatis完整的配置示例

3)完成以上配置后,MapperScannerConfigurer即Mapper扫描配置器,会在Spring启动时自动创建sqlSession对象,进而创建所有dao实现类对象,然后放入到Spring容器中;之后只要在需要的地方、从Spring容器中注入dao实现类对象即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值