title: Mybatis学习04
date: 2020-01-20 21:48:00
tags:Mybatis学习的第四篇笔记

这次的笔记主要是mybatis中的注解

<!--more-->

1、实体类的注解

  • 实体类的注解在mybati的XML文件中配置。

  • 注解的位置应该在setting之后,typeHandlers之前。

  • XML文件中各个配置顺序为:properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,reflectorFactory,plugins,environments,databaseIdProvider,mappers

  • 实体类的注解有两种方式

    • 将具体的实体类起一个可以自定义的别名,如:

      <typeAliases>
      <typeAlias type="com.neversettle.domain.User" alias="User"/>
      </typeAliases>
    • 将同一包下的所有实体类注解为其名称,如User注解为User及user,官方推荐使用user,实际中User和user都可以,注解方式为:

      <typeAliases>
      <package name="com.neversettle.domain"/>
      </typeAliases>

2、SQL的注解

  • 使用SQL注解需要在mybatis核心文件中注册,将之前的 *Mapper.xml 注册换位类的注册即可,具体如下:

    <mappers>
    <!-- 使用XML来实现接口-->
    <!-- <mapper resource="com/neversettle/dao/UserMapper.xml"/>-->
    <!-- 使用注解来实现接口-->
    <mapper class="com.neversettle.dao.UserMapper"/>
    </mappers>
  • 注解在接口中使用,如下:

    package com.neversettle.dao;

    import com.neversettle.domain.User;
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;

    import java.util.List;

    public interface UserMapper {

    //获取用户列表
    @Select("select * from user")
    List<User> getUserList();

    //删除一个用户
    @Delete("delete from user where id = #{id}")
    void deleteUserById(@Param("id")int id);
    }
    • 增删改查都对应着一个注解的标签,进行相关的操作都需要使用相应的标签。

    • @Param() 是参数的注解,使用在参数的前方,推荐每个参数都是用注解。

3、结果集映射

  • 如果实体类中的字段和数据库中的字段名称不一样,则可以使用结果集映射。

  • 结果集映射写在每个接口相应的实现XML中(如UserMapper.xml)

  • 如果只有个别字段不同,则可以只为个别字段映射(相当于注解)

  • 使用方法:

    <resultMap id="Student" type="com.neversettle.domain.Student">
    <result property="passowrd" column="pwd"/>
    </resultMap>
    • id为映射的名称,是在SQL语句的返回值类型中所写的名称

    • type为实体类

    • result中的property是实体类中的字段名

    • result中的column是数据库中要映射的字段名

Mybatis学习04的更多相关文章

  1. 【MyBatis学习04】mapper代理方法开发dao

    上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的 ...

  2. MyBatis学习04(注解开发)

    7.使用注解开发 7.1 面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面 ...

  3. MyBatis:学习笔记(3)——关联查询

    MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...

  4. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  5. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  6. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  7. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  8. JavaScript学习04 对象

    JavaScript学习04 对象 默认对象 日期对象Date, 格式:日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用): 2.英文-数值格式:月 日,公元年 [时:分: ...

  9. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

随机推荐

  1. C#设计模式-责任链模式(Chain of Responsibility Pattern)

    引子 一个事件需要经过多个对象处理是一个挺常见的场景,譬如采购审批流程,请假流程,软件开发中的异常处理流程,web请求处理流程等各种各样的流程,可以考虑使用责任链模式来实现.现在以请假流程为例,一般公 ...

  2. 理解js参数

    <!DOCTYPE html><html><head> <meta charset="utf-8" /> <title> ...

  3. 关于情感分类(Sentiment Classification)的文献整理

    最近对NLP中情感分类子方向的研究有些兴趣,在此整理下个人阅读的笔记(持续更新中): 1. Thumbs up? Sentiment classification using machine lear ...

  4. 1. 线性DP 120. 三角形最小路径和

    经典问题: 120. 三角形最小路径和  https://leetcode-cn.com/problems/triangle/ func minimumTotal(triangle [][]int) ...

  5. Linux内核调度分析(转,侵删)

    多任务 并发和并行 Linux作为一个多任务操作系统,必须支持程序的并发执行. 分类 非抢占式多任务 除非任务自己结束,否则将会一直执行. 抢占式多任务(Linux) 这种情况下,由调度程序来决定什么 ...

  6. Canvas实现放大镜效果完整案例

    本文主要记录 canvas 在图像.文字处理.离屏技术和放大镜特效的实现过程中使用到的API.先看下效果吧: 一张模糊的图片: 鼠标点击任意位置,产生放大效果: 哇塞~ 一个帅哥,哈哈哈哈~ 1.显示 ...

  7. NProgress使用教程

    GitHub地址 rstacruz/nprogress: For slim progress bars like on YouTube, Medium, etc (github.com) 演示网站 N ...

  8. 面试官:小伙子,给我说一下spring框架吧

    1. spring是什么 轻量级开源框架 以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核. 还能整 ...

  9. list scheduling algorithm 指令调度 —— 笔记

    作者:Yaong 出处:https://www.cnblogs.com/yaongtime/articles/14033444.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同 ...

  10. jQuery 第四章 实例方法 DOM操作_基于jQuery对象增删改查相关方法

    .next() .prev() .nextAll() .prevAll() .prevUntil() .nextUntli() .siblings() .children() .parent() .p ...