Mybatis的介绍

  前一段的时间我们详细的讲述了SSH框架中的Spring--Struts2--Hibernate三种框架,即Spring的IOC容器负责管理各个类的bean(一般为单例)、事务的管理和面向切面编程;Struts主要是负责控制前台页面--后台Java程序之间通过Action类和值栈数据传递,用OGNL对象导航图语言在JSP页面中进行读取;Hibernate主要是负责在Java程序中和数据库之间的数据交换,主要是其hbm.xml文件的映射文件。

  今天我们开始讲一讲Hibernate的类似语言框架Mybatis。

  1.原声的JDBC API访问的问题

  ① 用一个取一个,不用则关闭,会造成数据库资源的浪费。解决方法:使用数据库连接池。

  ② 在为preapredStatement设置参数、编写SQL、对ResultSet中遍历结构集这三个时刻都进行了硬编码,所谓硬编码就是将一些内容写死了,不可更改和替代。这样当我们需求改变时,就需要修改Java代码并重新编译,不利于系统重新维护。

  解决方式:我们将SQL语句、SQL参数的占位符、查询结果的结果集自动映射为对象等内容都配置在一个xml文件中,这样当需求改变时,只需修改xml中的内容而不需修改Java代码,从而也就不必修改Java代码重新编译了。(能写在配置文件中的东西尽量不要写在Java代码中

  2.mybatis框架的描述

  ① mybatis是一个持久层的框架

  ② 他可以让程序员将主要的精力放在SQL上,通过mybatis提供的映射方式,自由灵活的生成满足需求的SQL。

  ③ mybatis可以将向preparedStatement的输入参数自动映射成SQL语句中的占位符--输入参数,将查询结果灵活映射成Java对象--输出查询。

  3.mybatis的原理

  和Hibernate一样,Mybatis也是拥有一个框架的配置文件sqlSessionMap.xml,同时他也有一个sqlSessionFactory和sqlSession,分别对应Hibernate中的hibernate.cfg.xml和sessionFactory和session。这三者的功能及其内容和Hibernate的三者基本上一模一样。

  我们需要注意的是:在mybatis的底层,使用一个叫做MappedStatement来对操作数据库的行为进行封装的,包括输入参数,SQL语句,输出结果类型等

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值