二【单表的增删改查】(只演示增 )

news2025/2/27 7:20:19

目录

    • 1.1 前述
    • 1.2 结果映射resultMap
      • 1.2.1 字段名和属性名不匹配情况
    • 1.2.2 解决方法
    • 1.3 使用Insert 方法添加数据(涉及主键 问题)

在这里插入图片描述

1.1 前述

MyBatis可以方便的对数据库进行操作,而数据库表可能是一个相对独立的表(这里谓之单表),也可能两个或多个有密切联系的表(这里谓之多表),本章先来学习单表的增删改查操作,SqlSession的若干方法,这些方法被用来执行定义在mapper映射文件中的SELECT、INSERT、UPDATE和DELETE语句。以下是一些常用的方法。

T selectOne(String statement, Object parameter) 查询单条记录
List selectList(String statement, Object parameter) 查询记录集合
<K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey) 查询记录封装成Map集合
int insert(String statement, Object parameter) 插入一条记录
int update(String statement, Object parameter) 修改一条记录
int delete(String statement, Object parameter) 删除一条记录

以上方法可以重载,第二个参数不是必要的,重载方法如下。

T selectOne(String statement)
List selectList(String statement)
<K,V> Map<K,V> selectMap(String statement, String mapKey)
int insert(String statement)
int update(String statement)
int delete(String statement)
v

1.2 结果映射resultMap

结果映射就是数据库中的字段名和Java代码中 实体类属性名一一对应的机制,查询的结果封装成java对象,如果数据库的字段名称跟相应的类的属性名称不一样,不作处理的话,mybatis运行后相应的字段处的查询结果就为空

1.2.1 字段名和属性名不匹配情况

<select id="findAllStudents" resultType="com.lifeng.entity.Student">
		SELECT id,
			studentname,
			gender,
			age		
		FROM STUDENT
</select>

在这里插入图片描述

1.2.2 解决方法

  1. 在sql语句中 用起别名的方法对应字段名
  2. 在xml映射文件中配置resutlMap
  3. 设置驼峰命名的映射
    在这里插入图片描述

ResultMap: 将查询的sql结果映射为Student 对象

id property=“sid” -----------> colum="id "
字段名---------------------------------属性名

除上面的方法解决外,在遵循数据库和Java命名规则时只需配置Mybatis文件
在这里插入图片描述
在这里插入图片描述

1.3 使用Insert 方法添加数据(涉及主键 问题)

(1)检查数据库student表,确认主键非自增长,在接口类IStudentDao中新增一个方法。
public int insertStudent(Student student);
(2)在映射文件StdentMapper.xml中新增一段insert语句。
 <!--  添加一个学生 -->
<insert id="insertStudent" parameterType="Student">
		INSERT INTO student(id, studentname, gender, age)
		VALUES
		(#{sid}, #{sname}, #{sex}, #{age})
</insert>

#{sid}是占位符,传进来的值是参数类型Student对应的同名属性值,即Student对象的sid属性的值
在这里插入图片描述

在不涉及业务层的情况 代码如下:

*@Before在执行sql时 优先执行initial(); 加载配置文件

public class AppTest {
    SqlSessionFactory factory = null;
    @Before
    public void init(){

        try {
            InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
            factory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    @Test
    public void add() {

        SqlSession sqlSession = factory.openSession(true);
        // 获取接口实现类 多态    动态代理方式  ->代理对象 实现类
        UserMapper userDao = sqlSession.getMapper(UserMapper.class);   // UserDaoImpl@1353456
        System.out.println("userDao = " + userDao);
        User user = new User();
        user.setPassword("99999");
        //user.setUsername("root");
        Integer line = userDao.insertUser(user);
        System.out.println(line>0);
        sqlSession.close();

    }
    }

在数据库中 设置主键自增主键后 在mapper.xml文件中 配置如下
注意 是insert sql语句
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年1月手机热门品牌型号排行榜(手机行业趋势分析)

近期苹果降价引起人们的关注&#xff0c;并且优惠较大&#xff0c;iPhone 14 Pro系列在苹果官方授权渠道均降价&#xff0c;线下授权门店普遍降价700元左右。iPhone Pro与Pro Max作为苹果的旗舰产品&#xff0c;通常被认为是更为保值的机型&#xff0c;一般来说&#xff0c;不会…

分布式数据库(DorisDB、Clickhouse、TiDB)调研

1. 性能功能特点 B站视频&#xff1a;DorisDB VS ClickHouse OLAP PK 1.1 DorisDB 场量&#xff1a;线上数据应用 访问官方网站DorisDB企业版文档 DorisDB是鼎石科技由Apache Doris核心研发团队打造的新一代企业级MPP数据库。它继承了Apache Doris项目十多年研发成果&…

vr汽修仿真实训教学整体方案软件专业定制

随着网络、多媒体、人机交互等技术的发展,传统的教学模式受到越来越大的挑战.其中,汽车专业教学矛盾较为突出。 传统的汽车专业教学通常采用以PPT、视频、音频等传统视听教学系统的理论教学和实训车间实际操作的实训教学.这种教学模式不仅不能引起学生的学习兴趣,同时需要大量实…

MybatisPlus使用聚合函数

前言 今天遇到了一个求总数返回的情况&#xff0c;我一想这不是用sum就完事了吗。 但是仔细想想&#xff0c;MybatisPlus好像没有直接使用sum的api。 虽然没有直接提供&#xff0c;但是办法还是有的&#xff0c;下面就分享下如何实现的&#xff1a; 首先如果使用sql是这么写…

【计算机网络期末复习】重点知识总复习

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为想复习学校计算机网络课程的同学提供重点大纲&#xff0c;帮助大家渡过期末考~ &#x1f4da;专栏地址&#xff1a;https://blog.csdn.net/newin2020/cate…

tiktok达人带货,快码住!别错过高ROI达人!【超店有数】

众所周知&#xff0c;tiktok的快速发展带火了一大批的达人。这些达人在有了一定的粉丝基础后&#xff0c;通过营销&#xff0c;实现更多的变现。tiktok达人营销符合当下电商市场的发展需求&#xff0c;能够给电商市场带来积极的经济推动。小编建议商家们要善于利用tiktok达人带…

数据库迁移同步工具你选对了吗?

文章目录前言一、Navicat二、DataX二、TurboDX总结前言 之前在项目中&#xff0c;收到一个紧急需求&#xff0c;要把数据从 PostgreSQL 迁移到 TiDB 中。由于时间紧任务重&#xff0c;来不及调研高效的方式&#xff0c;直接使用了 Navicat 内置的功能&#xff0c;把数据从 Pos…

支付宝沙箱环境使用

第一步、开通支付宝开放平台账户 https://open.alipay.com/第二步、选择沙箱环境&#xff0c;按照官方文档操作即可 https://opendocs.alipay.com/common/02kkv7进入沙箱控制台 https://open.alipay.com/develop/sandbox/app第三步、配置接口的加密方式&#xff0c;选择自定义…

Modbus通信协议学习笔记

Modbus主从设备 主控设备&#xff08;Modbus Master&#xff09;&#xff1a;工控机、PLC、触摸屏等等 从设备&#xff08;Modbus Slave&#xff09;&#xff1a;PLC、Modbus采集模块、带485通讯的传感器、仪器仪表等等 Modbus物理接口&#xff1a;串口&#xff08;RS232、RS4…

零信任-深信服零信任aTrust介绍(5)

​深信服零信任aTrust介绍 深信服是国内领先的互联网信任服务提供商&#xff0c;也是国内首家通过认证的全球信任服务商。深信服零信任是其中一项核心的信任技术&#xff0c;主要针对身份认证、数字签名、数字证书等方面的信任问题。 深信服零信任提供了一种新的安全保护模式…

【老王读Spring Transaction-5】Spring事务传播行为propagation behavior的实现原理

Spring事务传播行为propagation behavior的实现原理前言Spring 版本正文事务传播行为(propagation behavior)列举事务传播行为归类事务传播行为的实现原理小结前言 Spring 对事务的封装除了实现了基本的事务管理之外&#xff0c;还提供了事务传播行为(propagation behavior)的…

【STM32笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时

【STM32笔记】HAL库外部定时器、系统定时器阻塞、非阻塞延时 外部定时器 采用定时器做延时使用时 需要计算好分频和计数 另外还要配置为不进行自动重载 对于50MHz的工作频率 分频为50-1也就是50M/501M 一次计数为1us 分频为50000-1也就是1k 一次计数为1ms 我配置的是TIM6 只…

深度学习——自注意力机制和位置编码(笔记)

1.自注意力&#xff1a; ①在深度学习中&#xff0c;经常使用卷积神经网络或者循环神经网络对序列进行编码 ②对于key,value和query&#xff0c;自注意力有一套自己的选法&#xff0c;因为key&#xff0c;value和query的值来自同一组输入。因此被称为自注意力或内部注意力 2…

CDGA|数据治理为什么绕不开数据权责问题?如何确定数据权责?

许多企业在经历过信息化建设之后&#xff0c;自然而然地将数据管理的重任交付给了IT部门&#xff0c;而当企业数据质量产生问题时&#xff0c;高层管理者也往往将其归结为IT部门的责任。然而&#xff0c;企业IT部门真的能够管理好这些数据&#xff0c;使其发挥最大效能吗&#…

在 Kubernetes 上运行《我的世界》

最近给小朋友装上了叨叨许久的 Minecraft&#xff08;我的世界&#xff09;&#xff0c;为了体验安装的是开源启动器 HMCL。其实这游戏我也关注比较久了&#xff0c;不过感觉太耗时间。但被小朋友拉上一起玩&#xff0c;便研究了下自建服务器。GitHub 发现已经有人做好了 Minec…

操作系统(四):磁盘调度算法,先来先服务,最短寻道时间优先,电梯算法

文章目录一、磁盘结构二、先来先服务三、最短寻道时间优先四、电梯算法 SCAN一、磁盘结构 盘面&#xff08;Platter&#xff09;&#xff1a;一个磁盘有多个盘面&#xff1b; 磁道&#xff08;Track&#xff09;&#xff1a;盘面上的圆形带状区域&#xff0c;一个盘面可以有多…

大数据处理学习笔记1.2 Scala变量与数据类型

文章目录零、本讲学习目标一、变量声明&#xff08;一&#xff09;简单说明&#xff08;二&#xff09;利用val声明变量1、声明方式2、案例演示&#xff08;三&#xff09;利用var声明变量1、声明方式2、案例演示&#xff08;四&#xff09;换行输入语句&#xff08;续行&#…

生产故障|Kafka ISR频繁伸缩引发性能急剧下降

生产故障&#xff5c;Kafka ISR频繁伸缩引发性能急剧下降-阿里云开发者社区 本文是笔者双十一系列第二弹&#xff0c;源于一个双十一期间一个让笔者猝不及防的生产故障&#xff0c;本文将详细剖析Kafka的副本机制&#xff0c;以及ISR频繁变更(扩张与伸缩)为什么会导致集群不可…

深入浅出C++ ——queue类深度剖析

文章目录一、queue的简介二、queue类常用接口三、STL中queue类的模拟实现一、queue的简介 队列是一种容器适配器&#xff0c;专门用于在FIFO上下文(先进先出)中操作&#xff0c;其中从容器一端插入元素&#xff0c;另一端提取元素。队列作为容器适配器实现&#xff0c;容器适配…

【RNN详解】SimpleRNN,LSTM,bi-LSTM的原理及Tensorflow实现

目录1.摘要2.SimpleRNN2.1.原理介绍2.2.代码实现3.LSTM3.1.原理介绍3.2.代码实现4.LSTM改进—bi_LSTM5.总结感觉不错的话&#xff0c;记得点赞收藏啊。1.摘要 RNN是一种特殊的神经网络结构&#xff0c;它是根据“人的认知是基于过往的经验和记忆”这一观点提出的&#xff0c;它…