zoukankan      html  css  js  c++  java
  • MyBatis之配置文件与操作

    一、MyBatis使用的两种方式:
    第一种:方式是自动映射
    第二种:使用XML方式

    二、MyBatis操作:

    1、使用Mapper文件方式
    2、使用Mapper接口和注解方式
    3、mapper文件与接口结合使用(推荐这种方法)

    三、 MyBatis一共有两种配置文件,一个叫主配置文件(下文截图中的net-mybatis-conf.xml),一个是映射的配置文件(net-mybatis-mapper.xml),其中映射文件可以有多个。(文件名随意编写,但不能重复)

    这里使用的是自动映射(自动映射的要求是类中的属性名与数据库中表的字段名或者select语句最后显示的名称要一致)

    (一)、mapper文件与mapper接口结合使用:

      1、编写实体类,添加get和set方法、toString方法

      2、创建MyBatis操作的数据访问接口

    #MyBatis的操作:

    MyBatis操作的接口或类
    SqlSession  ——接口
    SqlSessionFactory  ——接口
    SqlSessionFactoryBuilder  ——类

    MyBatais是使用SqlSession类型的对象对数据库进行操作,而SqlSessin是一个接口,该接口类型的对象由SqlSessionFactory类型对象创建。
    SqlSessionFactory也是一个接口,该接口类型的对象是由SqlSessionFactoryBuilder的build方法创建的。

    注意:在创建SqlSessionFactory时,需要一个输入流对象,该输入流对象就是去读取一个MyBatis的配置文件,如图

      3、配置图上的net—mybatis-conf.xml,(MyBatis的配置文件是一个XML文件)

         MyBatis的配置文件主要配置数据库操作的环境及映射信息

    4、配置MyBatis的映射文件

      主要用于关系模型与对象模型的映射  

      映射文件的根节点:mapper      其属性:namespace

      *  注意<mapper/>节点的namespace一定是接口类型的完全限定名

      mapper节点其详细的定义:(里面剩余节点下章会讲到)

       MyBatis操作的数据访问接口名:

      MyBatis映射文件:

      1、<select/>:查询     <insert/>:插入     <delete/>:删除      <update/>:更新   这四个是MyBatis映射文件中的<mapper>的操作子节点(这四个子节点的id属性要与数据接口类型的完全限定名)

      2、要执行的SQL语句,如果该语句有参数,使用#{参数名}结出。如果不给参数,就可以不要。

    小插曲:看到这里有没有觉得 MyBatis映射文件中的<mapper>的操作子节点里面的增删改查这几个节点中的parameterType属性的文件名太长了,这里可以用<typeAliases>节点进行简化,如图:

    1、在主配置文件中定义类型使用的别名:

    2、下图是映射文件,这样就简单化了,测试出来的结果是一样的。

    还有xml是约束性的文件,一定要注意匹配模式先后顺序进行编写(逗号分隔是有先后顺序的)如下图

    5、把MyBatis的映射文件加载到MyBatis的配置文件中

     6、编写测试接口类,这里只测试一个查询,其余测试方法都是一样的。

    结果:

    注意:

    接口与Mapper文件结合使用:
      1、Mapper文件中的<mapper/>节点的namespace一定是接口类型的完全限定名
      2、接口当中的方法名与<mapper/>中的子节点<操作节点>(select,delete,update,insert)节点的id值相同
      3、接口方法的参数,是要和Mapper文件操作节点的parameterType(parameterMap)内容要对应。

    (二)、使用Mapper接口和注解方式

      在进行MyBatis操作时可以不要Mapper文件,操作的SQL语句,使用注解的方式给出。

    示例:

      在接口中直接编写sql语句:

      把数据访问接口加载到MyBatis配置文件中(这里就不能用resource属性了,要用class属性),然后去测试这个接口,效果和mapper文件与接口结合是一样:

    注意:这里说一下加载属性文件,下图是我的mysql数据库的jdbc url

    在xml文件中配置jdbc url的时候,&这个符号是需要转义成amp; 也就是转成实体,如下:

    jdbc:mysql://localhost:3306/netmarketdb?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false

    但是如果是在文件中就不用这个实体也就是amp;,直接使用&符号连接即可; 示例如下:

     
    在MyBatis配置文件中,用<properties/>中<property/>子节点加载属性文件及定义属性,然后用EL表达式的${ }符号获取属性文件中的值。

     

    在这里有两种配置方法,也就是上述说描述的

    1、直接在xml文件中配置连接数据库的四个基本信息。

    2、在属性文件中写好连接数据库的四个基本信息,再到MyBatis的配置文件中加载属性文件,再用EL表达式去获取属性文件中的值。

  • 相关阅读:
    EF性能之关联加载
    【迁移】—Entity Framework实例详解
    GRIDVIEW多行多列合并单元格(合并列)
    使用Word2013发布随笔到博客园
    课堂资料下载-有问题加群-为杜绝有广告泛滥.固加群收费.
    strstr ShellCode实现
    X86保护模式入门简介
    WDK7600编译器环境配置
    内核驱动驱动对象 Driver_OBJECT
    基本的三角函数总结
  • 原文地址:https://www.cnblogs.com/xss512/p/10843425.html
Copyright © 2011-2022 走看看