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

MyBatis代理Dao方式CRUD操作详解

一、查询所有用户

// UserMapper接口 public List<User> findAll(); <!-- UserMapper.xml --> <select id="findAll" resultType="com.qcbyjy.domain.User"> select * from user </select>


二、根据ID查询用户

public User findById(Integer userId); <select id="findById" resultType="com.qcbyjy.domain.User" parameterType="int"> select * from user where id = #{id} </select>



注意:SQL语句中使用 #{占位符名称},名称可以任意,适用于基本数据类型和String类型。

三、插入用户(保存操作)

public void insert(User user); <insert id="insert" parameterType="com.qcbyjy.domain.User"> <!-- 配置主键返回 --> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> select last_insert_id() </selectKey> insert into user (username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address}) </insert>


selectKey 标签说明:

keyProperty:要返回的属性名称

order="AFTER":插入数据后的行为

resultType:返回值的类型

四、修改用户

public void update(User user); <update id="update" parameterType="com.qcbyjy.domain.User"> update user set username = #{username},birthday = #{birthday}, sex = #{sex},address = #{address} where id = #{id} </update>


五、删除用户

public void delete(Integer userId); <delete id="delete" parameterType="Integer"> delete from user where id = #{id} </delete>


六、模糊查询

public List<User> findByName(String username); 方式一(推荐):使用 #{} 占位符,调用时传入 % 通配符 <select id="findByName" resultType="com.qcbyjy.domain.User" parameterType="string"> select * from user where username like #{username} </select>


方式二(不推荐):使用 ${value} 拼接

<select id="findByName" resultType="com.qcbyjy.domain.User" parameterType="string"> select * from user where username like '%${value}%' </select>


七、查询总记录数

public Integer findByCount(); <select id="findByCount" resultType="int"> select count(*) from user </select>


八、#{} 与 ${} 的区别

特性#{}¥{}
底层实现PreparedStatementStatement
SQL注入有效防止存在风险
类型转换自动进行java类型和jdbc类型转换不进行类型转换
简单类型值括号中可以是value或其它名称括号中只能是value
推荐度推荐使用不推荐


http://www.jsqmd.com/news/1320934/

相关文章:

  • 如何高效清理Windows右键菜单:终极自定义管理指南
  • 终极指南:2分钟在Windows上快速安装苹果USB和移动设备以太网驱动
  • 英雄联盟玩家的智能助手:如何用League Akari提升你的游戏体验
  • 杭州LV回收全攻略:Carryall、Neverfull、Speedy,不同系列回收价差有多大? - 每日生活报
  • ComfyUI-WanVideoWrapper:一站式AI视频生成解决方案,让创意无限流动
  • 从爬虫到透视表:构建Python+MySQL+Excel电商数据分析闭环
  • QueryExcel:如何用3分钟完成原本需要8小时的Excel批量查询工作?
  • TypeScript类型错误自动化修复实践与Gemini-CLI应用
  • 如何在Windows上一键安装苹果USB和移动设备以太网驱动:告别黄色感叹号的终极指南
  • LTM4626IY#PBF,600kHz~3MHz 可调 DCM/CCM 双模式降压模块
  • 京东e卡回收市场现状及正规平台选择标准 - 圆圆收
  • 跨境电商龙虾AI:全链路自主增长工具横向功能拆解解析
  • AI画Q版头像总像“AI”?(行业首发Q版语义解耦模型白皮书)
  • 如何通过Wand-Enhancer免费解锁WeMod完整功能:3个简单步骤实现远程控制与高级定制
  • XMind流程图绘制全攻略:从零到一掌握高效可视化方法
  • 2026 年江西发电机租赁、发动机保养怎么选?工地用电实测避坑指南 - LYL仔仔
  • 2026智能客服对话式AI聊天工具推荐:全维度评测与企业选型指南 - 极欧测评
  • 百考通AI:让论文写作更高效、更省心,覆盖全场景需求
  • Unity3D开发实战:构建高效资源管线,从模型导入到性能优化
  • 基于HFSS的毫米波双工天线设计
  • SpringBoot+Vue构建服装电商平台全栈开发指南
  • 百考通AI:期刊智能生成,助力学术发表高效通关,覆盖全场景需求
  • 如何在Windows系统中使用ImDisk虚拟磁盘工具:面向新手的完整指南
  • 2026年口碑较好的304不锈钢板厂家实力盘点 - 产品评测官
  • AI驱动Blender自动化建模:本地LLM与Python API实践指南
  • 北京智能垃圾箱采购指南:全国优质垃圾箱厂家江苏实信智能科技助力智慧环卫建设 - 精彩城市
  • 2026 北京海淀防水补漏本地业主房屋修缮靠谱团队甄选指南 - 超人防水
  • Unity粒子系统Light与Trails模块:打造电影级爆炸特效实战指南
  • 开源AI模型许可证雷区全扫描:Apache vs MIT vs Llama 3 License——法律合规总监紧急签署的5条红线!
  • C++实现二叉树重建与层次遍历:从中序后序序列到BFS输出