• Mybatis--01


    mybatis 封装jdbc访问代码的一个框架 (hibernate)  ORM对象关系映射

    SpringMVC:用来封装servlet的框架 (struts)

    Spring:体系整合框架,其他框架的粘合剂

    框架:整个或者部分系统的可重用设计,

    优点:1、灵活可配置:将写死的代码放到配置文件中

    2、复用性高:将反复使用的代码抽取封装

    3、对底层细节进行封装,提供了方便调用的api

    主要内容:

    1 mybatis 介绍

    2 入门 :使用jdbc操作数据库存在的问题

         Mybatis的架构

        Mybatis的入门程序

    3 Dao的开发

        原始dao的开发

        动态代理方式

    4 SqlMapConfig.xml文件说明

    一。介绍

    持久层框架,对jdbc的操作进行封装,只需关注sql本身,不用处理加载驱动、创建连接、创建语句等过程

    通过xml过着注解的方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,并且通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后油mybatis框架执行sql语句,并将结果映射成java对象并且返回。

    二、

    2.1使用jdbc的问题总结:

      导入jar

      创建工程

      步骤:

        1、加载驱动

        2、获取连接

        3、创建语句对象

        4、设置sql语句

        5、设置sql参数(preparedStatement)

        6、执行sql

        7、关闭资源

      缺点:资源浪费、硬编码不容易维护、preparedStatement占位符不移维护、结果集的解析硬编码

    实例:

    1、配置数据库jdbc

    2、配置mybatis的配置文件

    3、创建entity类 User

    4、为User配置user。xml文件

    其中的id使用#{id} or #{value}

    5、测试数据库连接和数据获取

    控制台提示logger 需要打印日志

    Mybatis的增删改查

        模糊查询:

         

        在运行的java类中调用 session.selectList方法获取 List<User> 

         添加对象:

          

    使用标签实现插入数据后返回主键的值 主键回填

        

    修改记录:

    session.udpate commit

          删除用户:

          

            session.delete

    Mybatis 工作原理以及流程:

        

    优点:

    1 节省资源

    2 sql语句在xml文件中和java‘代码分离

    3 将对象自动映射到sql语句 通过parameterType定义输入参数类型

    4 将sql执行结果映射到java对象 通过stateme 的resultType定义输出结果的类型

    使用反射机制

    mybatis两种方式:

    1.原始的dao方法

     2.使用mapper代理进行开发

    (1)namespace和Dao接口的名称保持一致(原本是实体类的名称)

    代理实现类的流程

    总结:mybatis是基于动态代理实现的,cglib.jar   

    原始Dao开发中的问题:

      重复代码 SQLSession

      不存在硬编码问题(方法和id之类的东西)

    使用mapper代理,不需要创建DaoImpl就可以实现

    mapper动态代理的开发规范:

      只需要编写mapper接口(Dao 接口)

        1、mapper.xml文件中的namespace与mapper接口的类路径相同

        2、mapper接口方法名和mapper.xml文件中的每个sql的id

        3、parameterType

        4、resultType

    mapper.xml映射文件:

      内容同user.xml文件 修改namespace的值为UserMapper接口路径,并将UserMapper.xml文件放大classpath下的mapper目录

    当mapper文件特别多的时候 可以再mybatis的配置文件中批量扫描

     

     

    mybatis配置文件中的其他属性

    别名标签

    别名默认使用类名的小写

      

     简单类型 支持自动别名

     

     

      

  • 相关阅读:
    [CF845G]Shortest Path Problem?
    [洛谷P4149][IOI2011]Race
    [洛谷P4178]Tree
    [AtCoder AGC27A]Candy Distribution Again
    [洛谷P3806]【模板】点分治1
    [洛谷P2634][国家集训队]聪聪可可
    [CF280C]Game on Tree
    [洛谷P3338][ZJOI2014]力
    [CF438D]The Child and Sequence
    [CF609E]Minimum spanning tree for each edge
  • 原文地址:https://www.cnblogs.com/zhy-study/p/9247294.html
Copyright © 2020-2023  润新知