Java框架_Mybatis_day03_参数的深入了解

杰理蓝牙SPP用户接口详细文档 本文档详细介绍了基于JL701n芯片的蓝牙SPP用户接口实现。主要内容包括:1) 文件结构分析,包含必要的头文件和调试配置;2) 核心数据结构,如全局变量和TWS功能ID定义;3) 五大功能模块实现:数据发送、状态管理、数据接收、TWS支持和初始化清理;4) API接口说明,包括公共接口函数和回调函数;5) 使用教程,涵盖基本流程和高级应用示例。该接口支持虚拟串口连接,实现蓝牙设备间数据传输,特别针对TWS场景进行了优化,提供连接状态管理、数据收发等功能。文档还包含错误处理、重试机制等实用建议,适合蓝牙SP 阅读详情

目录

五、Mybatis参数的深入了解

5.1 parameterType(输入类型)

5.1.1 传递简单类型

5.1.2  传递 pojo 对象

5.2 通过 pojo 对象传递条件

5.2.1 创建 QueryVO 类(包装User类)

5.2.2 在 UserDao 接口中编写 模糊查询代码

5.2.3 在 UserDao.xml 文件中编写 模糊查询代码

5.2.4 在 TestUserDao 中编写 模糊查询代码

5.3 resultType(输出类型)

5.3.1 数据库中的字段与对象中的属性不一致问题

5.3.2 字段与属性名不一致问题解决(方案一)

5.3.2 字段与属性名不一致问题解决(方案二)(推荐)(resultMap)


五、Mybatis参数的深入了解

5.1 parameterType(输入类型)

5.1.1 传递简单类型

       int -- int 或者 java.lang.Integer

       string -- string 或者 java.lang.String

       别名不区分大小写

5.1.2  传递 pojo 对象

        com.cpz.domain.User -- username、address、sex、birthday、id

POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

5.2 通过 pojo 对象传递条件

5.2.1 创建 QueryVO 类(包装User类)

package com.cpz.domain;

public class QueryVO {

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

5.2.2 在 UserDao 接口中编写 模糊查询代码

    //使用QueryVO完成模糊查询
    List<User> findUserByQueryVOLike1(QueryVO queryVO);

5.2.3 在 UserDao.xml 文件中编写 模糊查询代码

    <!--使用QueryVO完成模糊查询-->
    <select id="findUserByQueryVOLike1" parameterType="com.cpz.domain.QueryVO" resultType="com.cpz.domain.User">
        select * from user where username like #{user.username}
    </select>

5.2.4 在 TestUserDao 中编写 模糊查询代码

    //通过QueryVO模糊查询
    @Test
    public void findUserByQueryVOLike(){
        QueryVO queryVO = new QueryVO();
        User user = new User();
        user.setUsername("%王%");
        queryVO.setUser(user);
        List<User> list = userDao.findUserByQueryVOLike1(queryVO);
        for (User u : list) {
            System.out.println(u);
        }
    }

5.3 resultType(输出类型)

5.3.1 数据库中的字段与对象中的属性不一致问题

       这里我们在原有代码基础上进行修改,分别修改User.java,UserDao.java等文件

       修改User.java文件

package com.cpz.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private int userId;// 主键ID
    private String userName;// 用户姓名
    private String userSex;// 性别
    private Date userBirthday;// 生日
    private String userAddress;// 地址

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    public Date getUserBirthday() {
        return userBirthday;
    }

    public void setUserBirthday(Date userBirthday) {
        this.userBirthday = userBirthday;
    }

    public String getUserAddress() {
        return userAddress;
    }

    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", userSex='" + userSex + '\'' +
                ", userBirthday=" + userBirthday +
                ", userAddress='" + userAddress + '\'' +
                '}';
    }
}

5.3.2 字段与属性名不一致问题解决(方案一)

添加、修改操作:我们选择修改OGNL表达式的参数值,让它们与实体类中的属性名一致

<!-- 查询所有 -->
<select id="findAll" resultType="com.itheima.domain.User">
    select * from user
</select>

<!--保存用户-->
<insert id="saveUser" parameterType="com.itheima.domain.User">
    <!-- 配置插入操作后,获取插入数据的id -->
    <selectKey keyProperty="userId" keyColumn="id" resultType="int" order="AFTER">
        select last_insert_id();
    </selectKey>
    insert into user(username,address,sex,birthday)values(#{userName},#{userAddress},#{userSex},#{userBirthday})

</insert>

查询操作:我们选择给每个字段起别名的方式,别名分别为实体类中的属性名

<!-- 查询所有 -->
<select id="findAll" resultType="com.itheima.domain.User">
    select id as userId,username as userName,address as userAddress,sex as userSex,birthday as userBirthday from user;
</select>

5.3.2 字段与属性名不一致问题解决(方案二)(推荐)(resultMap)

第一步:在 UserDao.xml 中的 <mapper> 下定义 <resultMap>

    <!--如果数据库的字段和实体类中的属性名称不一致,结果封装null,使用resultMap
        id :封装主键的映射
        result :封装普通字段的映射
            property="":实体中属性的名称
            column="":数据库中字段的名称
    -->
    <resultMap id="userMap" type="com.cpz.domain.User">
        <id property="userId" column="id"></id>
        <result property="userName" column="username"></result>
        <result property="userBirthday" column="birthday"></result>
        <result property="userSex" column="sex"></result>
        <result property="userAddress" column="address"></result>
    </resultMap>

第二步:修改 UserDao.xml 中的语句

         将语句中 resultType="com.cpz.domain.User" 修改为 resultMap="userMap",这里 userMap 指向 <resultMap> 中的 type

    <select id="findAll" resultMap="userMap">
        select * from user
    </select>

 

 

 

 

 

 

 

 

 

 

 

 

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计 一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动 阅读详情

相关推荐

伯德图详解:从传递函数到系统稳定性的频域分析

在自动控制与控制系统设计中,理解系统对不同频率输入信号的响应特性,是分析和设计稳定系统的核心基础。频率响应描述了系统对正弦输入的幅值增益与相位变化规律,而伯德图作为最直观的频域分析工具,通过对数坐标将宽频带特性压缩成一条清晰曲线,让工程师无需复杂计算即可快速评估系统性能。从典型环节的渐近线绘制,到相位裕度、幅值裕度的读取,伯德图贯穿了系统稳定性判断、控制器参数整定及噪声抑制等关键场景。本文结合实际调试经验,系统讲解伯德图的绘制原理与读图方法,帮助读者快速掌握从传递函数到工程应用的核心技能。

weixin_34535286的博客 338

Java框架:Mybatis【详细】

本位介绍Mybatis的概念、快速入门、配置文件详解、标签详解,常用场景的使用。

love_study1314的博客 3286

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8173

Java经典框架之MyBatis

缓存的物理介质通常是内存,而永久性数据存储源的物理介质通常是硬盘或磁盘,应用程序读写内在的速度显然比读写硬盘的速度快,如果缓存中存放的数据量非常大,也会用硬盘作为缓存的物理介质。MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。在默认的一对一和一对多中,一条SQL就能够查询到所有数据,但是,有的数据有时候一时半会用不上,例如查询员工,捎带获取员工的部门数据,但是部门数据使用的频率很低,这种时候可以使用延迟查询,首先获取到所有的员工数据,然后在需要的时候再去获取部门数据。

m0_52514893的博客 2376

MobaXterm远程连接频繁掉线?3个SSH保活设置让你告别断连烦恼

本文针对MobaXterm远程连接频繁掉线问题,提供了3个SSH保活设置方案。从基础的SSH心跳机制到进阶的会话超时调整,再到TCP层保活与代理优化,全方位解决断连烦恼。特别适合需要稳定远程连接的开发者和运维人员,有效提升工作效率。

weixin_29250573的博客 486

别再硬啃理论了!手把手教你用Simulink搭VSG并网模型,模拟线路故障(含三相故障模块详解)

本文提供了一份详细的Simulink VSG并网模型搭建指南,特别聚焦于三相故障模块的配置与仿真。通过逐步指导,帮助电力电子工程师掌握从基础电路搭建到复杂故障模拟的全流程,包括单相接地、两相短路等典型故障的波形分析与参数设置技巧,有效弥合理论与实践的鸿沟。

weixin_29057237的博客 317

java-Mybatis框架

简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQl、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以上内容摘自于特点①Mybatis 是一款优秀的持久层框架②Mybatis 对 jdbc 进行封装, 简化了操作。

Xiaowenyangnb的博客 1091

SAP 对接CBS(http方式)

CLEAR:lv_xml_crc32_string. CONCATENATEcrc32_passwordcrc32_keyi_stringINTOlv_xml_crc32_string. CONDENSElv_xml_crc32_string. CALLFUNCTION'SCMS_STRING_TO_XSTRING' EXPORTING text=lv_xml_crc32_string encoding='8400' "GB...

3597

java框架第一课(mybatis认识)

(1)MyBatis 是一款优秀的持久层框架(在与数据库交互,数据访问层,数据持久层)。(mybatis对jdbc进行包装)(2)MyBatis 避免了几乎所有的 JDBC 代码手动设置参数以及手动获取结果集的操作。(3)MyBatis将jdbc中的接口进行封装使用自己定义的接口和类来实现。(4)MyBatis可以使用xml文件配置和注解的方式,将数据库中记录的数据自动映射到java的对象中。

2301_77721901的博客 1233

MATLAB计算各种复合干热指数,如SDHI、DHMI等

MATLAB编程实现各种复合干热指数

WW、forever的博客 5079

PHM2010刀具磨损预测完整实现

本文介绍了PHM2010刀具磨损预测项目的完整实现方案。项目采用PHM2010公开数据集,包含6个子数据集,记录了铣削加工过程中7个通道的传感器数据(切削力、振动和声发射信号)。技术路线包括数据预处理(截取中间10万点、小波降噪)、特征提取(时域9个、频域4个特征)、特征融合和皮尔逊相关系数筛选,最终使用BiLSTM模型进行训练和评估。环境配置基于Python 3.9,依赖NumPy、Pandas、PyTorch等库。数据加载和预处理阶段重点处理了传感器信号分段和磨损标签对齐问题,为后续建模奠定基础。

huanghm88的专栏 419

JavaWeb开发框架——MyBatis

1、MyBatis的简介 1.1、原始jdbc操作(查询数据) 1.2、原始jdbc操作的分析 原始jdbc开发存在的问题如下: 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能; sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能性较大,sql变动需要改变java代码; 查询操作时,需要手动将结果集中的数据手动封装到实体中,插入操作时,需要手动将实体的数据设置到sql语句的占位符位置。 应对上述问题给出的解决方案: 使用数据库连接池初始化连接资源; 将sql语

weixin_44623055的博客 2747

存储硬盘格式怎么把512还原为520格式??

硬盘厂商工具(如SeaChestsg_format)可以调整扇区大小。备份数据,因为调整扇区会清除硬盘内容。根据硬盘型号和接口类型,选择合适的工具进行调整。如果你需要更详细的帮助,请提供你的硬盘型号和存储设备类型。希望如上措施及解决方案能够帮到有需要的你。PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

**My Coding Family** 1146

【JAVA_EE】Day01 MyBatis框架

MyBatis框架是一个支持普通SQL操作、存储及高级映射的持久层框架,通过使用简单的XML或注解进行配置和原始映射,将接口和Java的POJO映射为数据库中的记录,使开发人员可以使用面向对象的编程思想和方式来操作数据库。

HLJ_Student的博客 1008

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mybatis_day03

1 注解形式 1.0 注解形式和配置形式可以共存 属于的jar完全相同 装备sql DROP TABLE student; CREATE TABLE student( sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(100), sex CHAR(1), sage INT, sdy BOOLEAN, score FLOAT(4,1) ); INSERT INTO student VALUES( NULL,

m0_61569709的博客 755

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

阶段六-Day03-MyBatis1

mybatis进阶学习,增删改查

m0_59163770的博客 378

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

day03 mybatis

mybatis

Libra_97的博客 542

Java mybatis day1015

MyBatis最初是Apache的一个开源项目年6月这个项目由迁移到了。随着开发团队转投旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。MyBatis是一款优秀的持久层框架,用于简化JDBC开发。它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和。

2201_75555400的博客 771

MyBatis-学习笔记03【03.自定义Mybatis框架】

MyBatis-学习笔记03【03.自定义Mybatis框架】

upward 834

五:Day03_Mybatis01

按照面向对象思想对Java SE和Java EE里面的内容进行封装,把一些重复性的代码进行深度封装,在封装同时还添加了一些额外功能,这样可以写更少的代码,实现更强的功能,程序员可以将更多的精力放在业务上。这些封装随着不停的更新更迭就形成了框架(Framework),很多的框架也是开源的。MyBatis 是一款优秀的ORM框架,MVC分层开发中的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

qq_51318621的博客 114

Mybatis复习——day03_Mybatis获取参数的两种方式_Mybatis的各种查询功能

在获取参数时,我将其分为两种,一种是实体类型的参数,一种是其他参数对于实体类型的参数,只需要通过#{} 和${} 访问实体2类中的属性名,就可以获取相应的属性值对于其他类型的参数,我们可以使用@Param注解设置参数的别名,再使用别名来获取参数。...

qq_46061535的博客 520

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day20】—— MyBatis2

百日闭关修炼,每日三道高频面试题。一起冲进大厂!看什么看?快上车!

陈哈哈的菜园子 7382

java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架   框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别 人搭好的舞台,你来做...

weixin_30590285的博客 152

Day01. mybatis框架

Mybatis的知识笔记

weixin_46580576的博客 606

MyBatis框架——First Day

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

m0_63138660的博客 346

Java架构师Day03-源码分析之MyBatis

MyBatis代码自动生成器-GeneratorMyBatis下一对多,多对多,嵌套结果,嵌套查询一级缓存,二级缓存使用场景及选择策略MyBatis与Spring集成spring-mybatis.jar分析Spring集成下的SqlSession与MapperMyBatis的事务MyBatis的动态代理的真正实现手写MyBatis框架 代码自动生成器-Generator MyBatis下一对多,多对多,嵌套结果,嵌套查询 一级缓存,二级缓存使用场景及选择策略 MyBatis与Spring集成spring-m

攻城狮Chova的博客 465
上一篇: Java框架_Mybatis_day02_CRUD操作
下一篇: Java框架_Maven_day01
chipeize
博客等级 码龄10年 23粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值