Mybatis学习04
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的更多相关文章
- 【MyBatis学习04】mapper代理方法开发dao
上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的 ...
- MyBatis学习04(注解开发)
7.使用注解开发 7.1 面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面 ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- JavaScript学习04 对象
JavaScript学习04 对象 默认对象 日期对象Date, 格式:日期对象名称=new Date([日期参数]) 日期参数: 1.省略(最常用): 2.英文-数值格式:月 日,公元年 [时:分: ...
- Java虚拟机JVM学习04 类的初始化
Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...
随机推荐
- layui下拉框实现级联
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <link href ...
- 无法将“add-migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。解决方案
在程序包管理控制台中执行 Install-Package Microsoft.EntityFrameworkCore.Tools
- git 分支合并到master
[参考:] https://segmentfault.com/q/1010000000181403 我们一般这样:远程创建一个主分支,本地每人创建功能分支,日常工作流程如下: # 去自己的工作分支 ...
- 是什么让我节省了60%的编码时间?使用MBG
MyBatis Generator简介 业务需求不断变更,数据库表结构不断修改,是我们逃不出的宿命.工欲善其事,必先利其器,是时候祭出神器了:MyBatis Generator(简称:MBG),它是一 ...
- 设计模式之工厂模式(Factory模式)
在面向对象系统设计中经常遇到以下两类问题: 1)为了提高内聚(Cohesion)和松耦合(Coupling),我们经常会抽象出一些类的公共接口以形成抽象基类或者接口.这样我们可以通过声明一个指向基类的 ...
- binary hacks读数笔记(readelf命令)
可以用readelf命令来查看elf文件内容,跟objdump相比,这个命令更详细. 1. readelf -h SimpleSection.o ELF Header: Magic: 7f 45 4c ...
- ceph与flashcache的around模式结合启动问题
问题 通过对我们的启动流程看了下,目前是穿到一个脚本里面的,然后这个脚本是用无限循环的方式去执行一些事情,这个地方不符合松耦合的设计,一个模块做一个事情,两个并不相关的功能不要嵌入另一个脚本,否则出现 ...
- 修改ssh的默认22端口,并使用scp的方法
修改默认的22的ssh端口只需要修改 /etc/ssh/sshd_config 中的 port 字段为你想要的端口就可以了 以后用其他机器ssh登录这台机器只需要: ssh -p (port) (ip ...
- PicGo+jsDelivr+GitHub搭建免费图床,Typora使用图床
Github配置 首先,创建一个GitHub账号 然后添加一个仓库 创建完后点头像,Setting 然后点击Developer settings 然后点击Personal access tokens ...
- CVE-2020-3452 CISCO ASA远程任意文件读取漏洞
0x01 漏洞描述 Cisco官方 发布了 Cisco ASA 软件和 FTD 软件的 Web 接口存在目录遍历导致任意文件读取 的风险通告,该漏洞编号为 CVE-2020-3452. ...