MyBatis的创建

MyBatis的创建

 

1. 框架【半成品】

  • 生活中“框架”

    • 毛坯房:装修后直接使用

    • 手抓饼:加热后直接食用

  • 程序员框架

    • Spring:大管家

    • SpringMVC:表示层

    • MyBatis:是半自动化ORM,持久化层框架【dao层|mapper层半成品】

2. Mybatis简介

  • Mybatis前身Ibatis, iBatis3.x以后更名为Mybatis

  • Mybatis 是一个 半自动的ORM(Object Relation Mapping)【持久化层】框架

    • Hibernate全自动ORM框架

  • ORM【Object Relation Mapping】:对象关系映射

    • 将JavaBean【POJO】与数据库中表建立映射关系【通过配置文件或注解形式建立关系,优势:操作POJO可以直接影响数据库表中的数据】

  • POJO:Plain Old Java Objects【JavaBean】

3. 搭建Mybatis框架【helloworld】

  • 3.1 搭建框架思路

  • 导入jar包

  • 编写配置文件【注解】

  • 导入jar包

    • mybatis-3.5.1.jar

    • mysql-connector-java-5.1.7-bin.jar

  • 建表&pojo

    • -- 创建表

      CREATE TABLE tbl_employee(

      id INT(11) PRIMARY KEY AUTO_INCREMENT,

      last_name VARCHAR(50),

      email VARCHAR(50),

      gender CHAR(1)

      );

  • 编写核心配置文件

    • 核心配置文件名称可以任意定义,建议:mybatis-config.xml。配置文件位置:类路径下【类似src路径】

    • 示例代码

      <?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>
      <!--    设置数据库连接环境-->
          <environments default="development">
              <environment id="development">
                  <transactionManager type="JDBC"/>
                  <dataSource type="POOLED">
                      <property name="driver" value="com.mysql.jdbc.Driver"/>
                      <property name="url" value="jdbc:mysql://localhost:3306/db0317ssm"/>
                      <property name="username" value="root"/>
                      <property name="password" value="root"/>
                  </dataSource>
              </environment>
          </environments>
      <!--    加载映射文件-->
          <mappers>
              <mapper resource="EmployeeMapper.xml"/>
          </mappers>
      </configuration>

       

  • 编写映射配置文件

    • 编写映射文件规定

      • 映射文件名与接口Mapper名一致

      • 映射文件中namespace与接口Mapper全类名一致

      • 映射文件中编写SQL语句的id与接口Mapper中方法名一致

    • 示例代码

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper
              PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      ​
      <mapper namespace="com.atguigu.mapper.EmployeeMapper">
      ​
        <select id="selectEmpById" resultType="com.atguigu.pojo.Employee">
              SELECT id,last_name,email,gender
              FROM tbl_employee
              WHERE id=#{id}
        </select>
      ​
      </mapper>

       

  • 使用核心类库【SqlSession】

    • 创建SqlSessionFactory工厂类

    • 通过SqlSessionFactory工厂类,创建SqlSession对象

    • 通过SqlSession中getMapper(Class Mapper)获取代理对象

    • 调用接口中的方法

4. Mybatis中核心配置文件【mybatis-config.xml】

  • 概述:MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息

  • 常用标签

    • properties:设置数据库中属性资源配置

      <properties >
          <property name="driver" value="com.mysql.jdbc.Driver"/>
      </properties>
      <properties resource="db.properties"></properties>
      #db.properties
      #key=value
      db.driver=com.mysql.jdbc.Driver
      db.url=jdbc:mysql://localhost:3306/db0317ssm
      db.username=root
      db.password=root

       

      • 用法

    • settings:设置Mybatis行为

      • mapUnderscoreToCamelCase:开启下划线与驼峰式命名自动映射,注意:只能自动映射【a_bc与aBc】,默认false,设置true,则开启自动映射。

    • typeAliases:为Pojo设置别名

      <typeAliases>
      <!-- <typeAlias type="com.atguigu.pojo.Employee" alias="employee"></typeAlias>-->
          <!--为当前包下所有pojo设置类型别名,别名类名【不区分大小写,建议使用小写】-->
          <package name="com.atguigu.pojo"/>
          </typeAliases>

       

    • environments:设置数据库连接环境

      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC"/>
              <dataSource type="POOLED">
                  <property name="driver" value="${db.driver}"/>
                  <property name="url" value="${db.url}"/>
                  <property name="username" value="${db.username}"/>
                  <property name="password" value="${db.password}"/>
              </dataSource>
          </environment>
      </environments>

       

    • mappers:加载映射文件

      <mappers>
          <!--<mapper resource="EmployeeMapper.xml"/>-->
          <!--加载当前包下所有映射文件-->
              <package name="com.atguigu.mapper"/>
          </mappers>
      

       

总结:核心配置文件中标签顺序有要求,按照官方文档推荐顺序使用即可。

5. 日志框架

  • 作用:将程序中重要细节记录并显示。

  • log4j使用步骤

    1. 导入log4j.jar

    2. 编写配置文件:log4j.properties或log4j.xml

6.映射文件

  • 概述:MyBatis 的真正强大在于它的语句映射,如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

  • SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):

    • cache – 该命名空间的缓存配置。

    • cache-ref – 引用其它命名空间的缓存配置。

    • resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。

    • parameterMap – 老式风格的参数映射。此元素已被废弃,并可能在将来被移除!请使用行内参数映射。文档中不会介绍此元素。

    • sql – 可被其它语句引用的可重用语句块。

    • insert – 映射插入语句。

    • update – 映射更新语句。

    • delete – 映射删除语句。

    • select – 映射查询语句。

  • SQL语句常用属性

    • resultType:设置结果集类型【结果集映射对象,全类名或别名】

      • 注意,如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身的类型。

      • resultType 和 resultMap 之间只能同时使用一个。

    • resultMap:设置resultMap关联id

    • id:设置Sql语句唯一标识

    • parameterType:将会传入这条语句的参数的类全限定名或别名。这个属性是可选的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值