当前位置: 首页 > wzjs >正文

温州网站制作价格产品推广方法

温州网站制作价格,产品推广方法,资讯网站开发需求,网站强制分享链接怎么做的目录 1. 📑分页查询 1.1. 🔢顺序传参 1.1.1. 持久层方法 1.1.2. 映射文件 1.1.3. 测试类 1.2. 💡Param传参 1.2.1. 持久层接口方法 1.2.2. 映射文件 1.2.3. 测试类 1.3. 📦POJO传参 1.3.1. 自定义POJO 1.3.2. 持久层接…

目录

1. 📑分页查询

1.1. 🔢顺序传参

1.1.1. 持久层方法

1.1.2. 映射文件

1.1.3. 测试类

1.2. 💡@Param传参

1.2.1. 持久层接口方法

1.2.2. 映射文件

1.2.3. 测试类

1.3. 📦POJO传参

1.3.1. 自定义POJO

1.3.2. 持久层接口方法

1.3.3. 映射文件

1.3.4. 测试类

1.4. 🗺️Map传参

1.4.1. 持久层接口方法

1.4.2. 映射文件

1.4.3. 测试类

2. 📊聚合查询、主键回填

2.1. 🧮查询用户总数

2.1.1. 持久层接口方法

 2.1.2. 映射文件

2.1.3. 测试类

2.2. 🔙主键回填

2.2.1. 持久层接口方法

2.2.2. 映射文件

2.2.3. 测试类

3.  📌总结


💡【开发哲学共勉】

在 MyBatis 的世界里,事务提交是对数据变更的郑重承诺,参数绑定藏着对安全的敬畏,资源闭环是对系统的温柔守护,而接口与映射的一 一对应,恰是规范赋予效率的礼物

🎉 前言

在日常开发中,MyBatis 的数据交互操作里,分页查询、聚合统计与主键处理是高频场景。看似基础的传参方式选择、聚合函数使用、主键回填配置,实则藏着代码规范与开发效率的密钥。本文聚焦这些核心操作的实现细节与最佳实践,愿能为开发者提供清晰指引,让每一次数据交互都更规范、更高效

个人主页:艺杯羹🌿

系列专栏:MyBatis🚀

1. 📑分页查询

分页查询时,Sql语句使用 limit 关键字,需要传入开始索引每页条数两个参数
MyBatis的多参数处理有以下方式:

1.1. 🔢顺序传参

Sql中的参数使用arg0arg1...或 param1param2...表示参数的顺序
此方法可读性较低,在开发中不建议使用
演示一下

1.1.1. 持久层方法

/*** 分页查询* @param startIndex 开始索引* @param pageSize 每页条数* @return*/
List<User> findPage(int startIndex,int pageSize);

1.1.2. 映射文件

<select id="findPage" resultType="com.itbaizhan.mapper.User">-- #{arg0},#{arg1} 相当于从外面传值到这两个当中select * from user limit #{arg0},#{arg1}
</select><select id="findPage" resultType="com.itbaizhan.mapper.User">select * from user limit #{param1},#{param2}
</select>

1.1.3. 测试类

public void testFindPage(){List<User> page = userMapper.findPage(0, 3);page.forEach(user -> System.out.println(user.getUsername()));
}

1.2. 💡@Param传参

在接口方法的参数列表中通过@Param定义参数名称,在Sql语句中通过注解中所定义的参数名称指定参数位置
此方式参数比较直观的,推荐使用
演示一下

1.2.1. 持久层接口方法

List<User> findPage1(@Param("startIndex") int startIndex, @Param("pageSize")int pageSize);

1.2.2. 映射文件

<select id="findPage1" resultType="com.yibeigen.pojo.User">-- SQL 语句里的 #{startIndex} 和 #{pageSize} 要和这些注解的名称相对应select * from user limit #{startIndex},#{pageSize}
</select>

1.2.3. 测试类

@Test
public void testFindPage1(){List<User> users = userMapper.findPage1(3,3);users.forEach(System.out::println);
}

1.3. 📦POJO传参

自定义POJO类,该类的属性就是要传递的参数
在SQL语句中绑定参数时使用POJO的属性名作为参数名即可
这个方法也是推荐使用的

1.3.1. 自定义POJO

// 省略getter/setter/构造方法
public class PageQuery {private int startIndex;private int pageSize;
}

1.3.2. 持久层接口方法

List<User> findPage2(PageQuery pageQuery);

1.3.3. 映射文件

<select id="findPage2" resultType="com.yibeigen.pojo.User" parameterType="com.itbaizhan.pojo.PageQuery">select * from user limit #{startIndex},#{pageSize}
</select>

1.3.4. 测试类

@Test
public void testFindPage2(){PageQuery pageQuery = new PageQuery(3, 3);List<User> users = userMapper.findPage2(pageQuery);users.forEach(System.out::println);
}

1.4. 🗺️Map传参

如果不想自定义POJO,可以使用Map作为传递参数的载体
在SQL语句中绑定参数时使用Map的Key作为参数名即可
此方法推荐使用

1.4.1. 持久层接口方法

// 参数要是 Map<String,Object>
List<User> findPage3(Map<String,Object> params);

1.4.2. 映射文件

<select id="findPage3" resultType="com.yibeigen.pojo.User" parameterType="map">select * from user limit #{startIndex},#{pageSize}
</select>

1.4.3. 测试类

@Test
public void testFindPage3(){Map<String,Object> params = new HashMap();params.put("startIndex",0);params.put("pageSize",4);List<User> users = userMapper.findPage3(params);users.forEach(System.out::println);
}

2. 📊聚合查询、主键回填

聚合查询也就是将查询的所有总结成一条结果,例如查询用户总数

2.1. 🧮查询用户总数

2.1.1. 持久层接口方法

int findCount();

 2.1.2. 映射文件

<select id="findCount" resultType="int">select count(id) from user
</select>

2.1.3. 测试类

@Test
public void testFindCount(){System.out.println(userMapper.findCount());
}

2.2. 🔙主键回填

有时我们需要获取新插入数据的主键值
如果数据库中主键是自增的,这时我们就需要使用MyBatis的主键回填功能

2.2.1. 持久层接口方法

void add(User user);

2.2.2. 映射文件

<insert id="add" parameterType="com.itbaizhan.user.User"><!-- keyProperty:主键属性名,keyColumn:主键列名,resultType:主键类型,order:执行时机 --><selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">SELECT LAST_INSERT_ID();</selectKey>insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
</insert>

SELECT LAST_INSERT_ID():查询刚刚插入的记录的主键值,只适用于自增主键,且必须和insert语句一起执行

2.2.3. 测试类

@Test
public void testAdd(){User user = new User("艺杯羹", new Date(), "男", "湖南");userMapper.add(user);session.commit();System.out.println(user.getId());
}

3.  📌总结

到现在就讲解完了分页查询和聚合查询以及主键回填,希望能够帮助到大家, 如果有什么建议评论区见哦(๑•̀ㅂ•́)و✧

http://www.dtcms.com/wzjs/498330.html

相关文章:

  • 网站建设公司佛山2023年8月新闻热点事件
  • 网站建设教材下载网站怎么添加外链
  • 官方网站下载baiduwangpan优化大师官方网站
  • 三星企业网站建设ppt百度手机快速排名点击软件
  • 开发一个电商网站久久seo正规吗
  • 合浦县城乡规划建设局网站廊坊关键词快速排名
  • 网站建设与管理专业是什么百度搜索推广是什么
  • 滁州网站建设百度知道登录入口
  • 女教师遭网课入侵直播百度seo排名优化软件分类
  • 重庆公司建设网站百度快照怎么删除
  • 广陵区建设局网站app广告联盟
  • 内部网站做域名解析到端口百度会员登录入口
  • 娄底网站开发北京网络营销公司排名
  • 网页微信登录百度seo搜索营销新视角
  • 做器材的网站个人博客模板
  • 返利网 网站开发软件商店安装
  • 建设一个网站需要条件网页制作图片
  • 网站可以做多少优化关键词福建seo顾问
  • 网站建设培训学院sem工具是什么
  • 网站开发网页跳转到新的页面百度首页网址
  • 网站你懂我意思正能量晚上常用的五种网络营销工具
  • 小型手机网站建设企业网络推广赚钱
  • 曰本做爰视频网站企业网络营销策略
  • isp网站接入做哪些业务腾讯朋友圈广告怎么投放
  • 做网站开发怎么接单海外推广营销 平台
  • 网站加速免费网络营销推广外包服务
  • 网页设计公司建设网站今日新闻播报
  • 竭诚网络网站建设开发2020 惠州seo服务
  • h5移动端网站模板下载重庆百度推广开户
  • 临安规划建设局网站站长工具seo综合查询5g