zoukankan      html  css  js  c++  java
  • Mybatis笔记

    数据库mybatis和hibernate

    hibernate

    是一个标准的ORM框架,即对象关系映射,入门门槛较高,无需写sql语句,依赖语句自定生成sql语句;

    由于是对sql语句进行优化,修改比较困难;

    应用场景:

      适用于需求变化不多的中小型项目,比如后台管理系统、erp、orm、oa...

    mybatis

    专注于slq本身,需要程序员自己编写sql语句;

    由于是自己编写,sql修改、优化比较方便;

    是一个不完全的ORM框架,虽然是程序员自己写sql语句,但也可以实现映射:输入映射、输出映射等

    应用场景:

      适用于需求变化较多的项目,比如互联网项目...

    总结:企业进行技术选型,应以低成本、高回报作为原则。


     Mybatis框架执行过程

    步骤1、

    配置mybatis的全局配置文件:SqlMapConfig.xml,配置了数据源、事务等mybatis运行环境;

    配置mybatis的映射文件(sql语句):mapper.xml、mapper.xml、mapper.xml...

    步骤2、

    通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂:SqlSessionFactory,(注意)其在实际使用时按单例方式

    步骤3、

    通过SqlSessionFactory创建SqlSession:SqlSession是一个面向用户接口(提供操作数据库方法,发出增删改查),(注意)实现对象是线程不安全的,建议SqlSession应用场合在方法体内

    步骤4、

    调用SqlSession内部的方法,通过Executor执行器去操作数据库,如果需要提交事务,需要执行sqlSession的commit()方法;

    直接与mysql数据库交接的部分)使用mapper statement(底层封装对象),对操作数据库存储封装,包括sql语句,输入参数、输出结果类型

    步骤5、

    释放资源,关闭sqlSession

    输入:

    输入参数类型:Java简单类型、hashmap、pojo自定义

    输出:

    输出结果类型:Java简单类型、hashmap、pojo自定义

    Mybatis项目结构

    -mybatis_project

       -src

        -cn.itcast.mybatis.first

        -cn.itcast.mybatis.jdbc

      -config

        -log4j.properties

        -SqlMapConfig.xml

      -JRE System Library

      -Referenced Libraries

      -lib

        -jar包...


    Mybatis开发dao的两种方法(掌握)

    原始dao方法

    ①需要程序员编写dao接口实现类

    ②需要在dao实现类中注入一个SqlSessionFactory工厂

    mapper代理开发方法

    只需要程序员编写mapper接口,也就是dao接口

    程序员在编写mapper.xml映射文件的和mapper.java需要遵循一个开发规范:

    ①mapper.xml中的namespace就是mapper.java的类全路径

    ②mapper.xml中statement的id和mapper.java中方法一致

    ③mapper.xml中statement的parameterType指定输入参数的类型和mapper.java中方法参数类型一致

    ④mapper.xml中statement的resultType指定输出接口的类型和mapper.java中方法返回值类型一致

    输入映射(掌握)

    parameterType:指定输入参数类型,可以为简单类型、pojo、hashmap...

    对于综合查询,建议parameterType使用包装的pojo,有利于系统的扩展

    输出映射(掌握)

    resultType:查询到的列名和resultType指定的pojo的属性名一致,才能映射成功;假如不一致,通过resultMap设置列名和属性名之间的对应关系(映射关系)可以完成映射

    resultMap:可以通过resultMap完成一些高级映射


    动态sql(掌握)

    if判断(掌握)

    where

    foreach

    sql片段(掌握)


    高级(结果集)映射(了解)

    1、将关联查询的列映射到一个pojo属性中,实现一对一查询

    2、将关联查询的列映射到一个List<pojo>中,实现一对多查询

    3、实现多对多查询

    4、Mybatis延迟加载


    Mybatis查询缓存

    1、一级缓存

    2、二级缓存(了解mybatis二级缓存使用场景)


    Mybatis逆向工程 

  • 相关阅读:
    02-model设计
    01-开发环境搭建
    04-Uwsgi配置启动Nginx虚拟主机配置
    03-MySQL安装与配置
    02-Nginx配置
    01-Nginx安装
    22-注册、登录、验证登录
    21-django-pure-pagination分页
    (二)windows上使用docker
    Docker在windows7上的安装
  • 原文地址:https://www.cnblogs.com/hoanfir/p/9280475.html
Copyright © 2011-2022 走看看