zoukankan      html  css  js  c++  java
  • 初识MyBatis

    MyBatis是一个半自动ORM框架,优势如下:

      1.不用考虑公共问题,框架帮我们完成。

      2.可以专心于业务逻辑,保证核心业务逻辑的开发质量

      3.结构统一,便与学习。

    框架的概念:

      框架(Framework)是一个提供可重用的公共结构半成品。它为我们构建新的应用程序提供了极大的便利。

    如何搭建MyBatis:

      1.下载需要的jar文件:(http://mybatis.org)

      2.将jar文件放到项目下面的lib文件夹中并部署(如没有lib文件夹可创建一个Folder)

      3.将MyBatis的核心配置文件放到源码文件夹中(source Folder)中,并进行配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
      <!--配置数据库连接--> <properties resource="mybatis.properties" /> <settings> <setting name="autoMappingBehavior" value="FULL"/> </settings> <typeAliases > <package name="cn.bdqn.pojo"/> </typeAliases> <!-- 配置数据源,事务 --> <environments default="deploy"> <environment id="deploy"> <!-- 事务:JDBC/MANAGED-自己管理去 --> <transactionManager type="JDBC" /> <!-- 数据源:POOLED/UNPOOLED/JNDI --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments>    <mappers> <mapper resource="cn/bdqn/dao/IinvitationMapper.xml" /> <mapper resource="cn/bdqn/dao/IReply_detailMapper.xml" /> </mappers> </configuration>

    ------注意:MyBatis中核心配置文件的元素节点是有一定顺序的,若不按顺序排位,那么XML文件会报错。

    创建实体类:

      

      如图所示:cn.bdqn.pojo为实体类包

    创建接口:

      如图:cn.bdqn.dao包下是实体类对应的接口和xml映射文件

    配置数据库连接文件:MyBatis.properties

      如图resources源码文件夹中

    在MyBatis中我们把sql语句放在每个实体类(接口)对应的xml文件中

    MyBatis中有几个核心对象

      SqlSessionFactoryBuilder:用于创建SqlSessionFactory对象,通过build方法

      SqlSessionFactory:用于创建SqlSession对象没通过OpenSession()

      SqlSession:用于进行数据库的增删改查

      具体代码如图:(其中sqlMapCongif.xml就是我们配置的MyBatis核心配置文件)

      

    MyBatis中的sql映射文件,前面提到过每个实体类会对应一个接口和一个xml文件。

      我们在编写xml映射文件时,通常以...Mapper命名,下面我们看一下xml中的配置

      如图:

      在xml中有增删改查所对应的标签

      <select id="对应接口中的方法名" parameterType="对应接口中的参数类型" resultType="对应接口中方法返回值类型">

      对应的sql语句

      </select>

      <insert></insert>,<update></update>,<delete></delete>这些标签都类似于<selec>

    当我们新创建接口和对应的xml文件口要在MyBatis核心配置文件中的<mappers>标签下加上

      <mapper resource="新创建的xml文件地址,如:cn/bdqn/dao/IReply_detailMapper.xml" />

    在写增删改查的时候,标签里还有一个属性:resultMap=“id名称”,这个标签的作用是,当实体类中有嵌套关系时,在MyBatis默认的映射关系下,当从数据库读取数据时

      不会自动映射实体类对应的表中没有的字段的值,列如:有时为了方便我们会在实体类中自己添加其他的属性,而对应的表中没有此地段,如果我们没有配置MyBatis的映射级别为FUll (全部自动映射)默认为Partial(只映射表中有的字段名)

    接着编写对应id:

      <resultMap type="自定义属性的类型" id="上面自定义的id名">

      <result column="表中字段名" property="对应实体类中的属性名" /> 

    当嵌套的是集合时:

        <collection property="嵌套的其他类的集合名" ofType="嵌套类的类型">

          <id column="sql语句中的主键id" property="表中对应的主键id" />(可以不写,如sql语句中没写)
          <result column="sql语句中查询列名" property="对应的属性" />
        </collection>

    当嵌套的不是集合而是单个的对象时,用: 

        <association property="嵌套的对象名" javaType="嵌套对象类型">
          <id column="sql语句中的主键id" property="表中对应的主键id" />(可以不写,如sql语句中没写)
          <result column="sql语句中查询列名" property="对应的属性" />
        </association>

      </resultMap>

    当需要带参方法是我们通常用Map,或者对象,或者javaBean的基本数据类型,

      单个传参通常在参数前加@param注解:如:public int DeleteProviderById(@Param("id") int id);

      在对应的xml标签里可以用#{参数名}来引用参数如:delete  from provider where id=#{id}

  • 相关阅读:
    Flex实现页面多态state对象
    Flex精华摘要使用AS脚本
    JMeter最常用的三种类型的压力测试
    工作流简介
    Android模拟器使用模拟SD卡
    交大研究生,就一个字牛
    Google code上利用SVN托管代码
    主流浏览器内核概览
    Android开发之ADB使用
    Redis入门教程
  • 原文地址:https://www.cnblogs.com/MyQuen/p/9197446.html
Copyright © 2011-2022 走看看