尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

mybatis_generate_demo

mybatis_generate_demo
📅 发布时间:2026/6/20 11:43:57
UserInfoMapper
 
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public interface UserInfoMapper {/*** 新增 1 条记录,若成功则返回 1,若因唯一键重复则抛 DuplicateKeyException** @param userInfo* @return*/Integer add(UserInfo userInfo);/*** 根据主键物理删除一条记录,若成功则返回 1;若删除的数据不存在则返回 0** @param id* @return*/Integer physicalDeleteById(Long id);/*** 根据主键逻辑删除一条记录,若成功则返回 1;若删除的数据不存在则返回 0** @param id* @return*/Integer logicalDeleteById(Long id);/*** 更新一条记录,若成功则返回 1;若更新的数据不存在则返回 0.(注意: 入参 createdTime 不需赋值)** @param userInfo* @return*/Integer updateById(UserInfo userInfo);/*** 根据主键查询一条记录** @param id* @return*/UserInfo queryOneById(Long id);/*** 查询 1 条记录,若有多条记录符合条件,也只返回 1 条记录(LIMIT 1)** @param userInfo* @return*/UserInfo queryOne(UserInfo userInfo);/*** 查询列表,若入参为 null,则返回所有记录** @param ids* @return*/List<UserInfo> queryListByIds(@Param("ids") List<Long> ids);/*** 查询列表,若入参为 null,则返回所有记录* time between start and end 等价于 time >= start and time <= end,包括首尾* <if test='null!=startTime and null!=endTime'>AND create_time BETWEEN #{startTime} AND #{endTime}</if>* <if test='null!=startTime'><![CDATA[AND create_time >= #{startTime}]]></if>* <if test='null!=endTime'><![CDATA[AND create_time <= #{endTime}]]></if>** @param userInfo* @return*/List<UserInfo> queryList(@Param("userInfo") UserInfo userInfo);/*** 分页查询** @param userInfo* @param offset   = (pageNum - 1) * pageSize,pageNum 从 1 开始* @param rowCount = pageSize* @return*/List<UserInfo> queryPage(@Param("userInfo") UserInfo userInfo,@Param("offset") Integer offset,@Param("rowCount") Integer rowCount);/*** 查询符合条件的记录总数** @param userInfo* @return*/Integer count(@Param("userInfo") UserInfo userInfo);/*** 批量新增,若成功则返回新增的记录条数,若因唯一键重复则抛 DuplicateKeyException** @param userInfos* @return*/Integer addBatch(List<UserInfo> userInfos);/*** 批量物理删除,若成功则返回删除的记录条数;若删除的记录其中有不存在的记录,则只返回成功删除的记录数;若删除的记录 1 条都不存在,则返回 0** @param ids* @return*/Integer physicalDeleteByIds(@Param("ids") List<Long> ids);/*** 批量逻辑删除,若成功则返回删除的记录条数;若删除的记录其中有不存在的记录,则只返回成功删除的记录数;若删除的记录 1 条都不存在,则返回 0** @param ids* @return*/Integer logicalDeleteByIds(@Param("ids") List<Long> ids);/*** 批量更新,若成功则返回更新的记录条数.(注意: 入参 createdTime 不需赋值;若属性为空则不更新对应的字段.)** @param userInfos* @return*/Integer updateBatch(List<UserInfo> userInfos);}
DemoMapper.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.test.mapper.DemoMapper"><sql id="selectedFields"><![CDATA[id,name,age,height,create_time AS createTime]]></sql><sql id="whereClause"><where><if test="null!=id">AND id = #{id}</if><if test="null!=name and ''!=name">AND name = #{name}</if><if test="null!=age">AND age = #{age}</if><if test="null!=height">AND height = #{height}</if>AND is_deleted = 0</where></sql><sql id="listWhereClause"><where><if test="null!=demo.id">AND id = #{demo.id}</if><if test="null!=demo.name and ''!=demo.name">AND name = #{demo.name}</if><if test="null!=demo.age">AND age = #{demo.age}</if><if test="null!=demo.height">AND height = #{demo.height}</if>AND is_deleted = 0</where>ORDER BY create_time DESC</sql><sql id="pageOrCountWhereClause"><where><if test="null!=demo.id">AND id = #{demo.id}</if><if test="null!=demo.name and ''!=demo.name">AND name = #{demo.name}</if><if test="null!=demo.age">AND age = #{demo.age}</if><if test="null!=demo.height">AND height = #{demo.height}</if>AND is_deleted = 0</where>ORDER BY create_time DESC</sql><insert id="add" parameterType="com.test.entity.Demo" keyProperty="id">INSERT INTO demo<trim prefix="(" suffix=")" prefixOverrides=","><if test="null!=id">,id</if><if test="null!=name and ''!=name">,name</if><if test="null!=age">,age</if><if test="null!=height">,height</if><if test="null!=createTime">,create_time</if></trim>VALUES<trim prefix="(" suffix=")" prefixOverrides=","><if test="null!=id">,#{id}</if><if test="null!=name and ''!=name">,#{name}</if><if test="null!=age">,#{age}</if><if test="null!=height">,#{height}</if><if test="null!=createTime">,#{createTime}</if></trim></insert><!-- 物理删除 --><delete id="physicalDeleteById" parameterType="long">DELETE FROM demo WHERE id = #{id}</delete><!-- 逻辑删除 --><update id="logicalDeleteById" parameterType="long">UPDATE demo SET is_deleted = 1,update_time = now()WHERE id = #{id}</update><update id="updateById" parameterType="com.test.entity.Demo">UPDATE demo<trim prefix="SET" prefixOverrides=","><if test="null!=name and ''!=name">,name = #{name}</if><if test="null!=age">,age = #{age}</if><if test="null!=height">,height = #{height}</if><if test="null!=createTime">,create_time = #{createTime}</if></trim>WHERE id = #{id}</update><select id="queryOneById" parameterType="long" resultType="com.test.entity.Demo">SELECT <include refid="selectedFields"/> FROM demo WHERE id = #{id}</select><select id="queryOne" parameterType="com.test.entity.Demo" resultType="com.test.entity.Demo">SELECT <include refid="selectedFields"/> FROM demo<include refid="whereClause" />LIMIT 1</select><select id="queryListByIds" parameterType="java.util.List" resultType="com.test.entity.Demo">SELECT <include refid="selectedFields"/> FROM demo<where><if test="ids!=null and ids.size()>0">AND id IN<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">#{item}</foreach></if></where></select><select id="queryList" parameterType="com.test.entity.Demo" resultType="com.test.entity.Demo">SELECT <include refid="selectedFields"/> FROM demo<include refid="listWhereClause" /></select><select id="queryPage" resultType="com.test.entity.Demo">SELECT <include refid="selectedFields"/>FROM demo tINNER JOIN (SELECT id temp_id FROM demo) temp ON t.id = temp.temp_id<include refid="pageOrCountWhereClause" /><if test="null!=offset and null!=rowCount">LIMIT #{offset}, #{rowCount}</if></select><select id="count" resultType="int">SELECT COUNT(1) FROM demo <include refid="pageOrCountWhereClause" /></select><insert id="addBatch" parameterType="java.util.List">INSERT INTO demo (id,name,age,height,create_time)VALUES <foreach collection="list" item="item" index="index" separator=","> <trim prefix="(" suffix=")" prefixOverrides=",">,#{item.id},#{item.name},#{item.age},#{item.height},#{item.createTime}</trim></foreach></insert><!-- 物理删除 --><delete id="physicalDeleteByIds" parameterType="java.util.List">DELETE FROM demo<where><if test="ids!=null and ids.size()>0">AND id IN<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">#{item}</foreach></if></where></delete><!-- 批量逻辑删除 --><update id="logicalDeleteByIds" parameterType="java.util.List">UPDATE demo SET is_deleted = 1,update_time = now()<where><if test="ids!=null and ids.size()>0">AND id IN<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">#{item}</foreach></if></where></update><update id="updateBatch" parameterType="java.util.List">UPDATE demo<trim prefix="SET" suffixOverrides=","><trim prefix="name=CASE" suffix="END,"><foreach collection="list" item="item" index="index"><if test="null==item.name or ''==item.name">WHEN id=#{item.id} THEN name</if><if test="null!=item.name and ''!=item.name">WHEN id=#{item.id} THEN #{item.name}</if></foreach></trim><trim prefix="age=CASE" suffix="END,"><foreach collection="list" item="item" index="index"><if test="null==item.age">WHEN id=#{item.id} THEN age</if><if test="null!=item.age">WHEN id=#{item.id} THEN #{item.age}</if></foreach></trim><trim prefix="height=CASE" suffix="END,"><foreach collection="list" item="item" index="index"><if test="null==item.height">WHEN id=#{item.id} THEN height</if><if test="null!=item.height">WHEN id=#{item.id} THEN #{item.height}</if></foreach></trim><trim prefix="create_time=CASE" suffix="END,"><foreach collection="list" item="item" index="index"><if test="null==item.createTime">WHEN id=#{item.id} THEN create_time</if><if test="null!=item.createTime">WHEN id=#{item.id} THEN #{item.createTime}</if></foreach></trim></trim>WHERE id IN<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item.id}</foreach></update></mapper>

相关新闻

  • 换歌换歌
  • GaN 器件第三象限导通特性
  • Why did Hitler become a greater Napoleon?

最新新闻

  • 2026无保卡表盒无需担心,青岛本地甄选名表回收门店实测变现技巧 - 讯息早知道
  • 2026 杭州奢侈品回收实测:5家门店综合评级榜单 - 讯息早知道
  • AI辅助决策与GTO策略:构建你的扑克智能工作流
  • 深入解析NXP SB0800 SPI接口:从硬件连接到故障诊断的嵌入式驱动实践
  • 微信小程序二维码生成实战:weapp-qrcode高效解决方案深度解析
  • uniTerm v1.0正式发布内置自主AI Agent一站式跨平台全能终端

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号