mybaits学习之基础理解

来源:互联网 发布:linux下php的好处 编辑:程序博客网 时间:2024/04/29 11:30

传统JDBC数据库的五部曲

  • 使用JDBC编程需要连接数据库,注册驱动和数据库信息
  • 操作Connection,打开Statement对象
  • 通过Statement执行SQL,返回结果到ResultSet对象
  • 使用ResultSet读取对象,然后通过代码转换为具体的POJO对象
  • 关闭数据库的相关资源

    但是传统的JDBC的缺点1是工作量相对大,先是连接,然后处理JDBC底层的事物,处理数据类型,Connection对象,Statement对象和ResultSet对象,在拿到数据,然后关闭它们,缺点2是需要对JDBC中所产生的异常进行捕捉并正确的处理资源,对于一个简单的SQL都如此的复杂,何更复杂的应用呢。
    Hibernate的缺点:

  • 全表映射带来的不便,比如更新时需要发送的所有的代码
  • 无法根据不同的条件组装不同的
  • 对多表关联和复杂的SQL查询支持比较差,需要自己写SQL,还要将自己的返回数据组装为POJO
  • 不能有效的支持存储过程
  • HQL的性能较差
    Mybatis的基本构成
    SqlSessionFactoryBuilder(构造器):根据配置信息或者代码生成
    sqlSessionFactory(工厂接口),作用:就是生产SqlSessionFactory对象,生命周期只存在于方法的内部。
    SqlSessionFactory:依靠工厂来生成SqlSession(会话),SqlSession相当于JDBC里面的Connection对象,每次访问数据库都会创建SqlSession,所以SqlSessionFactory存在于整个Mybatis应用生命中。单例模式创建,每一个数据库只对应一个SqlSessionFactory,避免了更多的Connection被消耗。
    SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取mapper的接口。相当于JDBC的一个Connection对象,生命周期在请求数据库处理事务的整个过程中。
    Sql Mapper :它是Mybatis新设计并返回结果,它是由一个java接口和XML文件(或者注解)构成的,需要给出对应的SQL和映射规则,它负责发送SQL去执行,并返回结果。
    传递参数
    使用@Param注解传递多个参数,当n<=5时,为最好的传参方式,当n>5时,javabean时最好的传参方式。
原创粉丝点击