Mybatis(1)

1. Mybatis
是一个支持普通SQL查询,存储过程和高级映射的优秀持久层ORM(Object Relational Mapping 对象关系映射)框架。

  • 功能架构

     API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层接收到调用请求就会调用数据处理层来完成具体的数据处理。
     数据处理层:负责具体的SQL查 找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
     基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
    
  • 特点

     1.半自动化。
     2.表需要手动进行设计。
     3.提供sql。
     4.依赖与数据库平台。
     5.基与原声jdbc封装。
     优点:学习使用简单,优化灵活,适合做互联网项目。
    
  • 环境搭建

     1.下载资源jar包。
     2.项目下新建lib路径,需要的jar包放入lib路径下,选中右键add as lib..
     3.编写代码程序
         1.核心配置文件: 
              1.做mybatis使用的核心基本配置。
              2.数据库的连接信息。
              3.是否使用连接池技术。
              4.SQL映射文件的扫描。
         2.SQL映射文件: 定义SQL语句。
         3.测试执行使用mybatis框架连接数据库,执行SQL语句,得到结果。
    
  • mybatis.xml文件配置

Mybatis(1)_第1张图片

  • Mybatis SQL映射文件
    Mybatis(1)_第2张图片

    1.入参类型parameterType:
       1.基本数据类型|包装类:String  Date  JAVABEAN  数组  List  Map
       2.JAVABEAN: 当sql需要的参数存在多个,并且为一个对象的不同属性,可以先把对个参数封装成javabean对象,然后作为一个入参传递。
     注意:sql中占位符的名字需要匹配入参对象的属性名。
       3.数组|list:sql需要的多个参数是同种类型,一个字段的多个值,适合使用数组|list。
     注意:sql语句中需要使用foreach标签进行遍历。
       4.Map: sql需要的多个参数,不属于一个对象的不不同属性值,可以封装为Map集合中的不同键值对。
     注意:sql中占位符的名字需要匹配键值对的key。
    2.结果类型resultType:查询到的结果集中的每一个数据的类型。
       基本数据类型|包装类:String  Date  JAVABEAN  List  Map  List
     注意:如果结果类型为List,resultType设置的为集合的泛型类型。
    
  • 测试
    Mybatis(1)_第3张图片

     1.测试3个查询方法:
        1.selectOne("命名空间.id")  
                   查询一个数据,返回对应类型的一个结果,如果没有查询到返回null。
          selectOne("命名空间.id",Object) 
                   第二个参数为sql语句的入参。
        2.selectList("命名空间.id") 
                   查询多个数据,返回一个List集合,如果没有查询到返回空的List。
          selectList("命名空间.id",Object) 
                   第二个参数为sql语句的入参。
        3.selectMap("命名空间.id","作为key的字段名") 
                   查询多个数据,返回一个Map集合,如果没有查询到返回空的Map。
          selectMap("命名空间.id",Object,"作为key的字段名") 
                   第二个参数为sql语句的入参,第三个参数返回Map集合中每条数据作为key的字段名。
     2.测试增、删、改:
         1.增删改默认结果类型为影响函数。
         2.事务: 
             session = factory.openSession(); //默认手动提交事务
             session = factory.openSession(true); //设置自动提交事务
    
  • 测试接口绑定方案

     注意事项:
        1.接口名与SQL映射文件名字保持一致,同时放在同一个包下。
        2.SQL映射文件命名空间要求定义为: 与之绑定的接口的包名.文件名。
        3.sql标签的id属性值要求与所对应的抽象方法的方法名保持一致。
        4.SQL的参数与返回值要求与对应的抽象方法的参数与返回值保持一致。
     参数的使用:
        1.如果参数只有一个,站位符的名字可以任意定义。
        2.多参数: sql语句中占位符的名字默认为[arg1, arg0, param1, param2]。
        3.入参javabean时,占位符的名字匹配对象的属性名。
        4.@Param("参数别名") :sql语句中占位符的名字可以对应通过@Param注解定义的别名。
    
  • Mybatis的内建别名
    Mybatis(1)_第4张图片

你可能感兴趣的:(sql)