mybatis-210718-02---映射文件_参数处理_单个参数_多个参数

【Web服务器运维】基于Nginx与Keepalived的高可用负载均衡系统部署:实现故障自动切换与虚拟IP管理 内容概要:本文详细介绍了如何通过Nginx与Keepalived实现高可用的负载均衡架构。首先讲解了Nginx的安装部署流程,包括依赖环境的准备、源码解压编译、启动及配置重载;接着介绍了Keepalived的安装步骤及其服务管理方式;重点在于通过配置Keepalived的主备节点(MASTER/BACKUP),结合VRRP协议和虚拟IP(VIP)实现故障自动切换,并通过自定义脚本nginx_check.sh实时检测Nginx运行状态,确保服务高可用;最后补充了在云环境中因组播限制导致心跳不稳定时,应改用单播(unicast)方式进行通信的解决方案。; 适合人群:具备Linux系统操作基础、熟悉网络基础知识,从事运维、DevOps或Web服务部署的技术人员,尤其是工作1-3年的工程师。; 使用场景及目标:①搭建高可用的Web负载均衡系统,避免单点故障;②掌握Nginx与Keepalived协同工作的原理与实战配置方法;③应用于生产环境中提升服务稳定性与容灾能力。; 阅读建议:学习时应结合实验环境动手操作,重点关注keepalived.conf配置差异与nginx_check.sh脚本逻辑,理解VRRP机制及单播替代组播的实际应用场景,注意根据实际网络环境调整IP与网卡参数。 立即下载

mybatis-210718-02—映射文件_参数处理_单个参数_多个参数


单个参数

单个参数时:
	mybatis不会做特殊处理
	#{参数名}:取出参数值

多个参数

多个参数时:
	mybatis会做特殊处理
	多个参数会被封装成一个map
		key:param1,param2......paramn ; 或者参数的索引也可以(从0开始)
		value:传入的参数值
	#{}就是从map中获取指定的key的值
-------------------------------------------------------------------------------------------------------------------
	异常:
		org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [0, 1, 	param1, param2]
		Caused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [0, 1, param1, param2]
	操作:
		方法:public Employee getEmpByIdAndLastName(Integer id,String lastName);
		取值:#{id},#{lastName}
		
	解决操作:
		方法:public Employee getEmpByIdAndLastName(Integer id,String lastName);
		取值01:#{param1},#{param2}
		取值02:#{0},#{1}
		
	<select id="getEmpByIdAndLastName" resultType="com.bgy.mybatis.bean.Employee">
        select 	
            id,last_name,gender,email
        from 
            tbl_employee
        where
            id=#{param1} and last_name=#{param2}
  	</select>

-------------------------------------------------------------------------------------------------------------------
命名参数:
	明确封装参数值map的key:@Param("id")
	多个参数会被封装成一个map,
		key:使用@Param注解指定的值
		value:参数值
	#{指定的key} 取出对应的参数值

测试代码

EmployeeMapper.java(不使用注解前)

package com.bgy.mybatis.dao;
import com.bgy.mybatis.bean.Employee;
public interface EmployeeMapper {
	
    // 单个参数
	public Employee getEmpById(Integer id);
	
    // 多个参数
	public Employee getEmpByIdAndLastName(Integer id,String lastName);
}

EmployeeMapper.java(使用注解后)

package com.bgy.mybatis.dao;

import org.apache.ibatis.annotations.Param;

import com.bgy.mybatis.bean.Employee;

public interface EmployeeMapper {
	
	public Employee getEmpById(Integer id);
	
	public Employee getEmpByIdAndLastName(@Param("id")Integer id,@Param("lastName")String lastName);
}


EmployeeMapper.xml(不使用注解前)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bgy.mybatis.dao.EmployeeMapper">

  <!-- 
		参数处理,单个参数处理
		where id = #{id}	中 #{参数} 可以为任意值
  -->
  <select id="getEmpById" resultType="com.bgy.mybatis.bean.Employee">
    select 
    	id,last_name,gender,email
    from
    	tbl_employee 
    where 
    	id = #{idabc}
  </select>
  
  <!-- 
		参数处理,多个参数处理	
  -->
  <select id="getEmpByIdAndLastName" resultType="com.bgy.mybatis.bean.Employee">
  	select 	
  		id,last_name,gender,email
  	from 
  		tbl_employee
  	where
  		id=#{param1} and last_name=#{param2}
  </select>
</mapper>

EmployeeMapper.xml(使用注解后)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bgy.mybatis.dao.EmployeeMapper">

  <!-- 
		参数处理,单个参数处理
		where id = #{id}	中 #{参数} 可以为任意值
  -->
  <select id="getEmpById" resultType="com.bgy.mybatis.bean.Employee">
    select 
    	id,last_name,gender,email
    from
    	tbl_employee 
    where 
    	id = #{idabc}
  </select>
  
  <!-- 
		参数处理,多个参数处理	
  -->
  <select id="getEmpByIdAndLastName" resultType="com.bgy.mybatis.bean.Employee">
  	select 	
  		id,last_name,gender,email
  	from 
  		tbl_employee
  	where
  		id=#{id} and last_name=#{lastName}
  </select>
</mapper>

MybatisTest.java

package com.bgy.mybatis.test;

import static org.junit.jupiter.api.Assertions.*;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test;

import com.bgy.mybatis.bean.Employee;
import com.bgy.mybatis.dao.EmployeeMapper;
import com.bgy.mybatis.dao.EmployeeMapperAnnotation;

class MybatisTest {
	
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
	}

	/**
	 * 测试接口式映射
	 * @throws IOException
	 */
	@Test
	public void test01() throws IOException {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		
		SqlSession openSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
			Employee employee = mapper.getEmpById(1);
			
			System.out.println("test01");
			System.out.println(employee);
		} finally {
			openSession.close();
		}
	}
	
	/**
	 * 测试注解式映射
	 * @throws IOException
	 */
	@Test
	public void test02() throws IOException{
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		
		SqlSession openSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.class);
			Employee employee = mapper.getEmpById(1);
			
			System.out.println("test02");
			System.out.println(employee);
		} finally {
			openSession.close();
		}
	}
	
	/**
	 * 测试单个参数,多个参数的不同
	 * @throws IOException
	 */
	@Test
	public void test03() throws IOException{
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
		
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		try {
			EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
			
			// 测试单个参数
//			Employee employee = mapper.getEmpById(1);
//			System.out.println("测试单个参数");
//			System.out.println(employee);
			
			// 测试多个参数
			Employee employee = mapper.getEmpByIdAndLastName(1, "zhangsan");
			System.out.println("测试多个参数");
			System.out.println(employee);
			
		} finally {
			sqlSession.close();
		}
	}
}
三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现) 内容概要:本文档系统介绍了三电平Buck直流变换器在Simulink环境下的开环、单闭环与双闭环控制系统的建模仿真方法,涵盖系统建模、控制策略设计及动态性能对比分析。通过构建不同控制结构,深入探讨电压调节精度、系统响应速度、抗干扰能力及稳定性差异,重点剖析双闭环控制中电压外环与电流内环的协同作用机制,揭示其在抑制输出纹波、提升负载适应性方面的优势,帮助读者掌握多电平DC-DC变换器的核心控制原理与工程实现技术;文档还提供了详实的仿真参数设置与参考文献,便于理论验证与实践复现。; 适合人群:电力电子、自动化、电气工程及其相关专业的高校本科生、研究生、科研人员,以及从事电源系统、新能源变换器开发的工程技术人员。; 使用场景及目标:①作为高校电力电子课程的教学案例,辅助学生理解Buck变换器多层次控制策略的设计思路与性能差异;②为科研项目中高效直流变换系统的仿真研究提供可复用的技术模板;③指导工业界在高精度电源设计中优化控制器参数,提升系统动态响应与稳定性。; 阅读建议:建议结合Simulink仿真模型同步操作,对照文档逐步搭建各控制结构,重点观察不同闭环配置下输出电压的瞬态与稳态表现,深入理解PI参数整定、环路耦合影响及系统频域特性的关联性,从而全面提升对电力电子系统控制设计的综合把握能力。 立即下载

相关推荐

X光安检模型训练第一步:手把手教你处理OPIXray和HIXray这两个小众数据集

本文详细解析了X光安检AI模型训练的关键步骤,重点介绍如何处理OPIXray和HIXray这两个专业数据集。从数据格式转换到YOLO标准,再到数据增强和质量验证,手把手指导开发者高效利用这些数据集进行目标检测模型训练,提升安检场景下的危险物品识别准确率。

weixin_32629853的博客 316

mybatis-210718-03---映射文件_参数处理_POJO_Map_TO

mybatis-210718-03—映射文件_参数处理_POJO_Map_TO POJO: 如果多个参数正好是我们业务逻辑的数据模型,我们就可以直接传入pojo #{属性名}:取出传入的pojo的属性值 Map: 如果多个参数不是业务模型中的数据,没有对应的pojo,为了方便,我们也可以传入map #{key}:取出map中对应的值 TO: 如果多个参数不是业务模型中的数据,但是经常使用,推荐来编写了TO(Transfer Object)数据传输对象 page{ int

白光一的博客 149

【STM32】IEC60730 Class B软件安全实现 Part2:自检库实战指南

本文是STM32 IEC60730 Class B软件安全实现的实战指南,详细介绍了如何将X-CUBE-CLASSB自检库集成到用户项目中。内容涵盖软件包解构、内存划分、启动与运行时自检的集成步骤、关键代码示例及调试技巧,并阐述了为最终通过安全认证所需的文档与流程准备,帮助开发者高效实现MCU功能安全。

weixin_29185167的博客 91

mybatis-210718-01---映射文件_增删改查_获取(非)自增主键

mybatis-210718-01—映射文件_增删改查_获取(非)自增主键 mybatis-config.xml EmployeeMapper.java EmployeeMapper.xml Employee.java MybatisTest.java mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Confi

白光一的博客 162

基于Codex平台与AI Agent技能开发,实现抖音爆款视频分析与脚本自动生成

大家好,我是专注于AI应用开发的技术博主。最近在探索如何利用AI工具自动化内容创作时,我发现了一个非常有趣的组合:通过Codex平台创建自定义的Skill(技能),来批量分析抖音平台的爆款视频,并基于分析结果自动生成新的带货视频脚本。这听起来像是内容团队的“黑科技”,但实现起来其实有清晰的路径可循。本文将为你完整拆解这个实战项目,从环境搭建、Skill编写、数据抓取到视频脚本生成,手把手教你打造自己的“AI内容助理”。无论你是想了解AI Agent的开发,还是对短视频自动化创作感兴趣,都能从本文中获得可直接

weixin_34110749的博客 644

别让IO口保护二极管坑了你!实测讲解单片机电流倒灌的三种典型症状与防护

本文深入解析单片机电流倒灌的三大典型症状与防护方案,重点分析STM32等单片机在ADC采样异常、系统假死和通信速率异常中的表现。通过实测数据和电路设计建议,提供从基础二极管隔离到专业隔离器件的分级防护策略,帮助工程师有效预防和解决电流倒灌问题。

weixin_29280219的博客 344

mybatis-210718-04---映射文件_参数处理_取值_#&$

mybatis-210718-04—映射文件_参数处理_取值_#&$ 取值案例 #{ } — ${ }取值 #{ }更丰富的用法 取值案例 参考尚硅谷视频链接地址: https://www.bilibili.com/video/BV1mW411M737?p=22 https://www.bilibili.com/video/BV1mW411M737?p=23 public Employee getEmp(@Param("id")Integer id,String lastName);

白光一的博客 144

微信小程序导航栏滑动一定距离后固定到顶部

接上一篇文章的内容,通常在一个页面中部会有一个导航栏查看不同的内容,这篇文章旨在实现在页面下滑的过程中导航栏自动固定到顶部以便我们阅读过程中的切换。 下滑一段距离后自动固定到顶部 首先,思考这个功能应该是怎么实现的: 在页面下滑的过程中,我们希望系统应当能识别下滑了多少距离,当原本的导航栏逐渐被遮住以后(遮住意味着下滑了特定距离),触发这个功能,执行另一种样式,将导航栏固定在页面顶端,同时如果我们将页面往上滑,系统能识别到原来的导航栏能露出来了(即距离顶端的高度小于一个特定的值),这时候又执行最初的样式

Oblivision_Geek的博客 4031

mybatis-210721-02---动态sql-trim自定义字符串截取

mybatis-210721-02—动态sql-trim自定义字符串截取 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java EmployeeMapper.java package com.bgy.mybatis.dao; import java.util.List; import com.bgy.mybatis.bean.Employee; public interface EmployeeMapper { publ

白光一的博客 1612

英语语法-句法

摘要:本文系统梳理了英语句法知识,重点解析了五种基本句型及其扩展结构。内容包括句子类型(陈述句、疑问句、祈使句、感叹句)、复合句构成(从句分类与连词使用)、特殊句型(倒装、强调、引语转换)等。特别强调句子成分分析技巧,指出每种句子成分可由不同词法单元充当,需掌握成分识别与划分方法。文章还提供了往期语法系列链接,形成完整的英语语法学习体系,帮助读者建立从词法到句法的系统认知框架。

STCNXPARM的博客 8805

Uni-App推送踩坑实录:从云函数URL化到后台推送失效,我都经历了什么

本文详细记录了Uni-App开发者在接入uni-push 2.0时遇到的推送失效问题,从云函数URL化到后台推送失效的完整排查过程。通过系统化分析和与官方沟通,最终找到解决方案,并分享了预防措施与最佳实践,帮助开发者避免类似问题。

weixin_42552716的博客 487

mybatis-210721-01---动态sql-if判断&where查询条件

mybatis-210721-01—动态sql-if判断&where查询条件.md if_判断 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿) MybatisTest.javawhere where查询条件 EmployeeMapper.xml(笔记在这儿)(where)(1=1) EmployeeMapper.xml(笔记在这儿)(where标签) if_判断 EmployeeMapper.java package com.bgy.my

白光一的博客 510

逆向实战:如何绕过iTunes 12.6.5.3的反调试机制(附X64dbg插件配置)

本文深入剖析了iTunes 12.6.5.3的反调试机制与登录协议。通过X64dbg动态调试与IDA静态分析,详细演示了如何绕过其反调试检测,并定位到核心的登录协议加密函数,揭示了其请求签名(X-Apple-ActionSignature)的生成逻辑与依赖关系,为客户端安全研究与协议分析提供了实战思路。

weixin_29202213的博客 742

mybatis-210721-05---动态sql-foreach遍历集合

mybatis-210721-05—动态sql-foreach遍历集合 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java 查询 id在集合中 的员工 EmployeeMapper.java package com.bgy.mybatis.dao; import java.util.List; import org.apache.ibatis.annotations.Param; import com.bgy.myb

白光一的博客 361

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mybatis-210721-04---动态sql-set与if结合的动态更新

mybatis-210721-04—动态sql-set与if结合的动态更新 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java <!-- 更新员工 要求: 携带了那个字段,更新哪个字段 --> EmployeeMapper.java package com.bgy.mybatis.dao; import com.bgy.mybatis.bean.Employee; public interfa

白光一的博客 308

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mybatis-210721-08---动态sql-sql标签抽取可重用的sql

mybatis-210721-08—动态sql-sql标签抽取可重用的sql EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java EmployeeMapper.java package com.bgy.mybatis.dao; import com.bgy.mybatis.bean.Employee; public interface EmployeeMapper { public void insertEmps(Em

白光一的博客 249

老版QQ原生表情gif动态

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

mybatis-210721-07---动态sql-内置参数_parameter_databaseId&bind使用

mybatis-210721-07—动态sql-内置参数_parameter_databaseId&bind EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java EmployeeMapper.java package com.bgy.mybatis.dao; import java.util.List; import com.bgy.mybatis.bean.Employee; public interface E

白光一的博客 236

mybatis-210720-03---映射文件_select_resultMap_分步查询传递多列值&fetchType

mybatis-210720-03—映射文件_select_resultMap_分步查询传递多列值&fetchType.md DepartmentMapper.java DepartmentMapper.xml(笔记在这儿) EmployeeMapper.java EmployeeMapper.xml MybatisTest.java <!-- 场景2 查询部门的时候,把对应所有的员工信息查询出来 --> DepartmentMapper.java package co

白光一的博客 220

mybatis-210720-01---映射文件_select_resultMap_collection定义关联集合封装

mybatis-210720-01—映射文件_select_resultMap_collection定义关联集合封装.md DepartmentMapper.java DepartmentMapper.xml(笔记在这儿) EmployeeMapper.java EmployeeMapper.xml MybatisTest.java Department.java Employee.java <!-- 场景2 查询部门的时候,把对应所有的员工信息查询出来 --> Departm

白光一的博客 206

mybatis-210721-03---动态sql-choose分支选择

mybatis-210721-03—动态sql-choose分支选择 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java <!-- 查询员工 要求: 携带了那个字段,查询条件就带上这个字段的值 --> EmployeeMapper.java package com.bgy.mybatis.dao; import java.util.List; import com.bgy.mybatis.bea

白光一的博客 206

mybatis-210722-02---缓存-第三方缓存&ehcache

mybatis-210722-02—缓存-使用第三方缓存&ehcache 我的目录结构 EmployeeMapper.java EmployeeMapper.xml(在这里使用了ehcache) DepartmentMapper.xml(这里引用了EmployeeMapper的缓存) MybatisTest.java ehcache.xml(这里也有笔记哦) log4j.xml mybatis-config.xml 我的目录结构 EmployeeMapper.java package co

白光一的博客 199

mybatis-210719-01---映射文件_select_返回List&记录封装map

mybatis-210719-01—映射文件_select_返回List&记录封装map 返回List EmployeeMapper.java EmployeeMapper.xml MybatisTest.java 记录封装map EmployeeMapper.java EmployeeMapper.xml MybatisTest.java 返回List EmployeeMapper.java package com.bgy.mybatis.dao; import java.uti

白光一的博客 196

mybatis-210721-06---动态sql-foreach批量插入

mybatis-210721-06—动态sql-foreach批量插入 EmployeeMapper.java EmployeeMapper.xml(笔记在这儿哦) MybatisTest.java dbconfig.properties 插入多条员工数据 这个MySQL的的批量插入 如果在Oracle中批量插入,以下方法就不管用了,请参考尚硅谷mybatis视频 https://www.bilibili.com/video/BV1mW411M737?p=46 https://w

白光一的博客 191

mybatis-210719-03---映射文件_select_resultMap_关联查询&分步查询

mybatis-210719-03—映射文件_select_resultMap_关联查询&分步查询 DepartmentMapper.java DepartmentMapper.xml EmployeeMapper.java EmployeeMapper.xml(笔记都在这) MybatisTest.java mybatis-config.xml Department.java DepartmentMapper.java package com.bgy.mybatis.dao; import

白光一的博客 173

mybatis-210717-02---全局配置文件

mybatis-210717-01—全局配置文件 properties_引入外部配置文件 settings_运行时行为设置 typeAliases_别名 typeHandlers_类型处理器 environment_运行环境 databaseIdProvider_多数据库支持 mappers_sql映射路径 properties_引入外部配置文件 mybatis中xml中properties配置: https://mybatis.org/mybatis-3/zh/configuration.html

白光一的博客 164
上一篇: mybatis-210718-01---映射文件_增删改查_获取(非)自增主键
下一篇: mybatis-210718-03---映射文件_参数处理_POJO_Map_TO
白光一
博客等级 码龄9年 0粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值