Mybatis实践教程(四)-数据添加

SpringBoot快速教程四整合Mybatis-plus SpringBoot3版本整合最新版Mybatis-plus的教程方便自己日常无缝迁移,那么来了,本篇教程就是基于SpringBoot3.3.4整合最新版的Mybatis-plus的3.5.7的SpringBoot3专属版本,希望大家可以和之前的Mybatis做一下对比,俗话说,没有对比,就没有伤害! 阅读详情

需求:添加一条用户信息至t_user表中

需求:添加一条用户信息至t_user表中

我们在上一章节的代码中继续增加代码

 

UserService接口增加添加数据的方法

int insertUser(User user);

UserServiceImpl增加实现方法

@Override
public int insertUser(User user) {
    return userMapper.insertUser(user);
}

UserMapper增加添加数据的方法

int insertUser(User user);

UserMapper.xml增加相应的sql

<!--添加一条用户信息-->
 <insert id="insertUser" parameterType="com.example.springbootmybatis.domain.User">
        insert into t_user(user_name, age, address, mobile_phone)
            values(#{userName}, #{age}, #{address}, #{mobilePhone})
</insert>

测试类增加相应的测试代码,并执行测试

/**
 * 添加数据
 */
@Test
public void insertUserInfo(){
    User user = new User();
    user.setAge(20);
    user.setMobilePhone("18599208271");
    user.setUserName("hello test");
    user.setAddress("test address");
    userService.insertUser(user);

}

执行测试完成数据添加,表示我们通过Mybatis成功将数据添加至数据库中。

SpringBoot与MyBatis整合实践教程 在MyBatis框架中,Mapper接口扮演着非常重要的角色。它是一种契约,将数据库操作映射为接口中的方法。通过定义接口,可以更清晰地定义数据访问层的操作,使得业务代码与数据访问代码分离,从而提高代码的可维护性和可测试性。定义Mapper接口的方式非常简单,只需要创建一个接口,并在其中定义与数据库操作相对应的方法。Mapper接口通常与一个XML文件相对应,该文件包含映射的SQL语句,但在MyBatis 3.0之后,可以通过注解的方式直接在接口中定义SQL语句,从而使代码更加简洁。 阅读详情

相关推荐

ADC噪声参数博弈论:为何24位ADC的有效分辨率可能不如16位?

本文深入探讨了ADC噪声参数的核心矛盾,揭示了24位ADC有效分辨率可能不如16位ADC的根本原因。关键在于跳出单纯比较位数的误区,转而关注输入参考噪声这一绝对指标。文章通过分析参考电压对满量程范围和噪声模型的影响,阐述了动态范围与最小可测信号之间的取舍逻辑,为工程师提供了基于系统实际需求的ADC选型与噪声评估框架。

snow3的博客 702

基于MyBatis、Maven对数据库进行简单插入数据操作

此文章为记录本人学习Mybatis与Maven文件管理的自我梳理,进行了对数据库基本的插入数据操作(其实其他操作也类似,在映射文件里写好就行)。

c26366667032的博客 770

某教育平台线上用户流失分析

本项目基于某教育平台的用户登录信息、用户个人信息以及用户课程学习记录三信息表,挖掘了平台流量以及用户流失等信息。使用python对数据进行预处理,使用tableau进行数据可视化分析。该教育平台正值窗口期,平台流量没有良好的留存水平,但有良好的发展趋势,需要深入分析用户留存率低,做好招新促活营销。该教育平台的基本盘在广东、湖北、河南、贵州等省份,线上教育的潜在用户可能更多分布在线下教育资源不充足、受疫情影响更为严重的地区。

fhy12的博客 1299

MyBatis添加数据

传递 pojo 包装对象 开发中通过 pojo 传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查 询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。 Pojo 类中包含 pojo。 需求:根据用户名查询用户信息,查询条件放到 QueryVo 的 user 属性中。 当parameterType的类型为对象 的时候name的值不能随便命名...

shujuku____的博客 2375

rk3566-11.0新增device分区

1.增加块设备 2.修改根目录节点权限 3.开机启动自动挂载 增加块设备 1.修改parameter.txt文件,新增块设备大小及命名 device/rockchip/rk356x/rk3566_r/parameter.txt FIRMWARE_VER: 11.0 MACHINE_MODEL: rk3566_r MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE

weixin_51115260的博客 3380

从零开始,用Cadence Virtuoso手把手仿真一个1.5V LDO(附完整电路与仿真脚本)

本文详细介绍了如何使用Cadence Virtuoso从零开始仿真一个1.5V LDO,包括环境准备、电路导入、Testbench构建、核心仿真类型分析以及高级调试技巧。通过完整的电路与仿真脚本,帮助读者掌握LDO设计与仿真的关键技术,提升电路设计能力。

weixin_31309419的博客 442

MyBatis 中的一种向数据库中插入数据的方式 insertUseGeneratedKeys()

这里的 productImg 是一个 Java 对象,包含了需要插入到数据库中的数据。执行完 insertUseGeneratedKeys() 方法后,可以通过调用 getId() 方法获取自动生成的主键值。其中,useGeneratedKeys=“true” 表示启用自动生成主键功能,keyProperty=“id”方法是 MyBatis 中的一种向数据库中插入数据的方式,

weixin_52221334的博客 1372

如何在RT-DETR-R18中修改ultralytics的yaml文件(附完整代码)

本文详细指导如何在RT-DETR模型中,通过修改Ultralytics框架的yaml配置文件,将Backbone从ResNet50轻量化替换为ResNet18。核心步骤包括自定义ResNet18基础模块、调整HybridEncoder的expansion参数至0.5,并协同修改检测头Decoder层数,最终提供完整的配置文件代码,助力开发者在资源受限环境下部署轻量级实时目标检测模型。

weixin_29091445的博客 287

使用mybatis实现数据库插入数据

(1)在Dao层的实体类接口中添加相应函数。 (2)在相应的.xml文件中加入一个mapper标记 (3)修改main()函数中的语句,关键是修改了sqlId(修改指定的接口中的函数,和sqlSession调用的方法insert(),它有两个参数,前一个是sqlId,后一个是插入的对象。注意还要额外加一局sqlSession.commit();提交事务,否则执行无效、没有添加。 执行代码,查询数据库: ...

qq_51476492的博客 7886

RK3568笔记五十四:SORT实时目标追踪

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。结合YOLOv5和DeepSORT可以在实时场景中实现高效的目标检测和跟踪。

788

【1】Python交叉编译到OpenHarmony标准系统运行(arm32位)

本文介绍如何Python语言如何在OpenHarmony标准系统运行,包括5.0r和4.1r以及4.0r,和未来版本的OpenHarmony版本上。 Python语言在OpenHarmony上使用,需要将Python解释器CPython移植到OpenHarmony标准系统。通过交叉编译的方式。

weixin_58069108的博客 927

mybatis中关于向数据库添加数据的两种方法

我是一个刚学习mybatis的新手,这是我自学整理的一部分内容,希望对您有帮助。user类(跟数据库表一致) userDao类里面方法设置: userMapper映射文件的设置 通过#{属性名}这样的方式可以获取参数对象的属性 mybatis主配置文件 将映射文件添加到主配置文件的中 导包 1、没有返回值的添加方式 2、带返回值的添加方法 (返回的是添加的行数) 2.1、需要创建一个声明字符串statement 里面存...

weixin_63243861的博客 5907

Unitree G1仿人机器人协同搬箱:从仿真搭建到多机协同部署完整指南

Unitree G1仿人机器人协同搬箱技术方案摘要 本文提供了一套完整的Unitree G1人形机器人协同搬箱解决方案,涵盖从仿真环境搭建到多机协同部署的全流程。核心内容包括: 双仿真环境配置:同时搭建Gazebo+ROS Noetic基础仿真环境与Isaac Gym+Mujoco高性能RL训练环境,支持Sim2Sim迁移验证 训练框架搭建:详细配置unitree_rl_gym框架,提供PPO算法定制化训练流程和参数优化方案 数据集应用:整合宇树开源真机数据集(UnifoLM-WBT-Dataset)~~~

huanghm88的专栏 470

【SSM整合】SpringMVC + Spring + Mybatis整合详细教程

本文为SpringMVC + Spring + Mybatis整合教程相关详细介绍,从数据库数据准备、相关依赖包添加、创建项目基本结构和配置框架,到Mybatis层的编写、Spring层的编写、SpringMVC层的编写,再到前端页面编写等,最后进行运行与测试,按步骤对SSM框架整合进行详细的解析~

小新要变强的博客 5427

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MyBatis-PageHelper 使用教程

MyBatis-PageHelper 是一个 MyBatis 的通用分页插件,旨在简化分页操作。该插件支持多种数据库,包括 Oracle、MySQL、MariaDB、SQLite、DB2、PostgreSQL、SqlServer 等,并且支持多种分页方式。通过使用该插件,开发者可以轻松实现复杂的单表或多表分页查询。 ## 项目快速启动 ### 1. 添加依赖 首先,在项目的 `pom.xml...

gitblog_00362的博客 489

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Mybatis Pagination 插件使用教程

Mybatis Pagination 插件使用教程 项目介绍 Mybatis Pagination 是一个用于 Mybatis 数据库物理分页方言的插件。该插件可以帮助开发者在使用 Mybatis 进行数据库操作时,实现高效的分页查询。通过使用物理分页,可以避免在内存中对大量数据进行排序和分页,从而提高查询效率。 项目快速启动 1. 添加依赖 首先,在你的 Maven 项目中添加 Mybatis ...

gitblog_00437的博客 886

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

安装MyBatis教程

简单安装MyBatis教程 1. 介绍 MyBatis简介 1) MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 2) MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 3) MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录 4) 其是一个半自动ORM(Object Relation Mapping对象关系映射)框架 Hi

littietinydrean的博客 6439

使用mybatis进行四表联查

文章目录一、问题背景二、实际问题三、问题解决四、sql语句与XML映射文件五、测试 一、问题背景 先数据库有用户表user、角色表role、菜单表menu、功能表funs和角色菜单关系表role_menu。 各表的字段及数据如下 用户user表 角色role表 角色菜单关系表role_menu 菜单menu表 功能funs表 二、实际问题 表与表之间的关系 类与类之间的关系 四表连查 user、role、menu、funs、role_menu,通过username来进行查询用户信息、对应的角色信

shangshanzixu的博客 2596

MyBatis Guice 开源项目教程

MyBatis Guice 开源项目教程 项目介绍 MyBatis Guice 是 MyBatis 的一个扩展,它将 MyBatis 与 Google Guice 框架集成在一起,使得 MyBatis 的配置和依赖注入更加便捷。通过 MyBatis Guice,开发者可以利用 Guice 的强大依赖注入功能来管理 MyBatis 的 SqlSessionFactory 和 Mapper 实例,从而...

gitblog_01142的博客 876

MyBatis批量操作添加删除数据

MyBatis批量操作添加删除数据

lfyyyyy的博客 2038

Mybatis反向生成及Mybatis实践总结

目录 1 Mybatis反向生成 1.1 反向生成集成步骤 1.2 实践总结 2 Mybatis实践经验 2.1 mapping文件中,提取公共sql,做到sql语句的复用,以下直接上代码 2.2 Mybatis 入参类型总结 2.3 Mybatis返回类型总结 2.4 保存时如果将主键回填至对象 2.5 新增,更新和删除时返回受影响行数? Match数? 2.6 Mybati...

zb408112217的专栏 4468

Mybatis实现批量添加

【代码】mybatis实现批量添加。

m0_67244960的博客 1102

Mybatis-Plus-Join使用教程

Mybatis-Plus-Join使用教程 1. 项目介绍 Mybatis-Plus-Join 是一个由社区开发者贡献的扩展组件,旨在弥补 Mybatis-Plus 在多表关联查询方面的不足。该组件设计用于简化多表查询的复杂性,提升开发效率,允许开发者在不编写原始SQL语句的情况下完成复杂的关联查询需求。它兼容并增强了Mybatis-Plus的基本功能,使得基于Mybatis-Plus的项目能够更...

gitblog_00579的博客 1722

手写Mybatis:渐进式源码实践教程

手写Mybatis:渐进式源码实践教程 项目介绍 small-mybatis 是一个旨在帮助开发者深入理解 MyBatis 核心功能的开源项目。通过手写 MyBatis 的各个组件,包括解析、绑定、反射、缓存、回话和事务操作,以及与 Spring 的整合,开发者可以更清晰地掌握 MyBatis 的工作原理和实现细节。 项目快速启动 环境准备 Java 8 或更高版本 Maven 3.6 或更高版...

gitblog_00164的博客 555

Mybatis实战练习四【单个条件(动态SQL)&添加数据】

单个条件(动态SQL):编写接口方法,SQL语句,测试方法。添加数据:添加主键返回

日常学习总结 1079

Mybatis添加数据传入Map作为参数

Mybatis添加数据传入Map作为参数 mapper.java dao层 package com.location.bjgwserver.mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List...

松鼠教授的博客 4642
上一篇: Mybatis实践教程(三)-数据查询
下一篇: JAVA异常详解
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值