​1、CRUD

1.1namespace

namespace中的包名必须和Dao/mapper接口包名一致

1.2select

选择,查询语句

id:就是对应的namespace中的方法名
resultType:Sql语句执行的返回值类型
parameterType:参数类型

编写接口

User getUserById(int id);

编写接口对应的Mapper中语句

<select id="getUserById" parameterType="int"
resultType="com.aostarit.entity.User">
select * from mybatis.user where id = #{id}
</select>

测试:

@Test
public void getUserById() {
//获得sqlSession对象
SqlSession sqlsession = MybatisUtil.getSqlsession();
//执行SQL
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
//关闭sqlSession
sqlsession.close();
}

1.3Insert

<!--对象中的属性可以直接取出来 -->
<insert id="addUser" parameterType="com.aostarit.entity.User">
insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd})
</insert>

1.4update

<update id="updateUser" parameterType="com.aostarit.entity.User">
update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id}
</update>

1.5delete

<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>

注意点:增删改查需要提交事务

分许错误:

标签不要匹配错误:例如:select标签中必须写select语句
resources绑定mapper,需要使用路径
程序配置文件必须符合规范!
NullPointException,没有注册到资源!
输出的xml文件中存在中文乱码问题
maven资源没有导出问题!
mybatis核心配置文件中mapper映射器路径不能带.,需要用/代替
<!--映射器-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>

2、Map和模糊查询拓展

2.1假设我们的实体类、或者数据库中的表、字段或者参数过多,我们应该考虑使用Map!

<insert id="addUserMap" parameterType="map">
insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{userPwd})
</insert>
public void addUser2() {
//获得sqlSession对象
SqlSession sqlsession = MybatisUtil.getSqlsession();
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
HashMap<String, Object> userMap = new HashMap<String, Object>();
userMap.put("userId",10);
userMap.put("userName","11234");
userMap.put("userPwd","1234343");
int result = mapper.addUserMap(userMap);
if(result>0){
System.out.println("插入成功");
}
//提交事务
sqlsession.commit();
//关闭sqlSession
sqlsession.close();
}

Map传递参数,直接在sql中取出对象即可

对象传递参数,直接在sql中取对象的属性即可

只有一个基本类型参数的情况下,可以直接在sql取到!

多个参数用Map,或者注解!

2.2模糊查询

1、Java代码执行的时候,传递通配符% %

List<User> userLike = mapper.getUserLike("%李%");

2、在sql拼接中使用通配符!

 <select id="getUserLike" resultType="com.aostarit.entity.User">
select * from mybatis.user where name like "%"#{value}"%"
</select>

Mybatis实现增删改查的更多相关文章

  1. 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作

    一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...

  2. MyBatis的增删改查。

    数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...

  3. MyBatis批量增删改查操作

      前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...

  4. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。

    1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...

  5. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查

    使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...

  6. 从0开始完成SpringBoot+Mybatis实现增删改查

    1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...

  7. Spring Boot入门系列(六)如何整合Mybatis实现增删改查

    前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...

  8. Mybatis实例增删改查(二)

    创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...

  9. mybatis的增删改查返回值小析(六)

    本文验证了通过mybatis访问数据库时的,增删改查的返回值情况. 直接看代码. 1.service层 /** *@Author: Administrator on 2020/3/12 15:15 * ...

  10. ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)

    ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...

随机推荐

  1. 【Azure 事件中心】Event Hub服务中的度量值指标介绍

    问题描述 Event Hub服务中的度量值指标解说 1)request和message的区别 2)capture backlog 和 capture message 怎么理解 3)quota exce ...

  2. 通过python获取SSL证书到期时间

    在前面的文章中曾介绍过如何通过openssl命令获取SSL证书的到期时间:通过zabbix监控ssl证书到期时间. 有人反馈实践中这种方式存在缺陷,可能会出现部分域名证书无法获取的情况,报错如下: 1 ...

  3. 发那科数控机床FanucCNC(NCGuide)仿真模拟器配置和数据采集测试

    开发日记3.12 此篇用于记录发那科数控机床(Fanuc CNC)采集程序开发中,用虚拟机做测试时,虚拟机的配置和使用以支持采集软件开发和测试. 配置虚拟机使用仿真软件 下载VMware15 「链接: ...

  4. 3 - 任务调度算法 & 同步与互斥 &队列

    之前的都是按照优先级不同允许抢占(不讲道理),不管你在做什么,轮到优先级最高的任务,直接抢占执行 怎样才能讲道理呢?稍微等等嘛,等我做完活你再做   1 支持抢占,0不支持抢占  同优先级任务是否交替 ...

  5. dist目录打war包命令 jar -cvf yourName_web.war *

    进入dist目录 "build:war": "cd dist && jar -cvf ../yourName_web.war *",

  6. PBKDF2算法:保障密码安全的利器

    PBKDF2算法起源: PBKDF2(Password-Based Key Derivation Function 2)算法是一种基于密码的密钥派生函数,最初由RSA实验室的密码学家提出,用于从密码中 ...

  7. Linux环境下Minio的安装部署与启动教程(完整版)

    1.概述 MinIO是一个开源.分布式的对象存储系统,专为云原生环境设计.它提供了一个基于标准的Amazon S3兼容接口,使得开发者可以使用熟悉的API在私有云或边缘环境中部署和管理大规模非结构化数 ...

  8. centos如何换源

    centos如何换源? 万事先备份 mkdir -p /etc/yum/backup/ cp -r /etc/yum.repos.d/* /etc/yum/backup/ 1.将源文件备份 cd /e ...

  9. Python 查找PDF中的指定文本并高亮显示

    在处理大量PDF文档时,有时我们需要快速找到特定的文本信息.本文将提供以下三个Python示例来帮助你在PDF文件中快速查找并高亮指定的文本. 查找并高亮PDF中所有的指定文本 查找并高亮PDF某个区 ...

  10. sklearn库主要模块功能简介

    1.sklearn库简介 sklearn,全称scikit-learn,是python中的机器学习库,建立在numpy.scipy.matplotlib等数据科学包的基础之上,涵盖了机器学习中的样例数 ...