Mybatis实现增删改查及分页查询的方法
MyBatis是一个强大的持久层框架,它允许开发者将SQL语句与Java对象直接绑定,减少了大量手动编写JDBC代码的工作。在本篇文章中,我们将深入探讨如何使用MyBatis实现增删改查(CRUD)操作以及分页查询。 1. 增加(Create) 在MyBatis中,增加数据通常涉及到创建一个Java类来代表数据库中的表,并使用MyBatis的XML映射文件定义插入操作。例如,假设我们有一个`Goods`类,我们可以创建如下的XML映射文件中的`insert`标签: ```xml <insert id="insertGood" parameterType="com.clark.model.Goods"> INSERT INTO goods (cate_id, name, price, description, order_no, update_time) VALUES (#{cateId}, #{name}, #{price}, #{description}, #{orderNo}, #{updateTime}) </insert> ``` 2. 删除(Delete) 删除操作同样需要一个对应的XML映射文件中的`delete`标签。例如,根据ID删除商品: ```xml <delete id="deleteGoodById" parameterType="int"> DELETE FROM goods WHERE id = #{id} </delete> ``` 3. 修改(Update) 更新数据时,我们需要使用`update`标签。以下是如何更新商品信息的示例: ```xml <update id="updateGood" parameterType="com.clark.model.Goods"> UPDATE goods SET cate_id = #{cateId}, name = #{name}, price = #{price}, description = #{description}, order_no = #{orderNo}, update_time = #{updateTime} WHERE id = #{id} </update> ``` 4. 查询(Select) 查询操作包括单条记录查询和分页查询。单条记录查询可以使用`select`标签: ```xml <select id="selectGoodById" parameterType="int" resultType="com.clark.model.Goods"> SELECT * FROM goods WHERE id = #{id} </select> ``` 5. 分页查询 MyBatis提供了灵活的分页查询功能。通常,我们需要传递页码和每页大小作为参数,然后在SQL中使用`LIMIT`和`OFFSET`(或者`ROWNUM`,具体取决于数据库)来实现分页。以下是一个分页查询的例子: ```xml <select id="selectGoodsByPage" parameterType="map" resultMap="t_good"> SELECT * FROM goods WHERE <if test="condition != null"> ${condition} </if> ORDER BY update_time DESC LIMIT #{pageSize} OFFSET #{offset} </select> ``` 在这个例子中,`condition`参数可以用于添加额外的查询条件,`pageSize`是每页的记录数,`offset`是当前页的起始位置。 6. MyBatis配置 MyBatis的配置文件`mybatis-config.xml`用于定义数据源、事务管理器等全局设置。示例中展示了如何配置Oracle数据源: ```xml <configuration> ... <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@172.30.0.125:1521:oradb01" /> <property name="username" value="settlement" /> <property name="password" value="settlement" /> </dataSource> </environment> </environments> ... </configuration> ``` 7. 映射文件(Mapper XML) 每个Mapper XML文件对应一个Java接口,其中定义了SQL语句。例如,`goodsMapper.xml`文件包含了`Goods`类的相关操作: ```xml <mapper namespace="clark"> ... <resultMap id="t_good" type="com.clark.model.Goods"> <id column="id" property="id"/> ... </resultMap> ... </mapper> ``` 总结: MyBatis通过XML或注解的方式将SQL语句与Java对象绑定,使得数据库操作变得简单且易于维护。通过配置文件设置数据源,结合Mapper接口和XML映射文件,可以轻松实现对数据库的增删改查操作,同时利用分页查询功能,可以有效地处理大数据量的展示需求。
- 粉丝: 2
- 资源: 957
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于 B 站评论区数据构建大语言模型训练用对话数据集详细文档+全部资料+源码.zip
- 基于 Apache Flink 构建赤兔实时计算平台是的企业级、一站式、高性能、低门槛实时大数据实时计算平台,广泛适用于流式数据应用开发场景详细文档+全部资料+源码.zip
- 基于 JavaFX+Pcap4J 开发的一个强大的跨平台底层数据包工具箱 sunny详细文档+全部资料+源码.zip
- 基于 vue、datav、Echart 框架的大数据可视化(大屏展示)模板详细文档+全部资料+源码.zip
- 基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统详细文档+全部资料+源码.zip
- 基于.Net8+AntBlazor+SemanticKernel 和KernelMemory 打造的AI知识库智能体,支持本地离线AI大模型。可以不联网离线运行
- 基于Apache POI导出大数据量(百万级)Excel的实现详细文档+全部资料+源码.zip
- 基于Android中原生SDK操作SQLite的封装,提升App的开发效率详细文档+全部资料+源码.zip
- 基于ak-design可视化低代码快速开发平台,通过可视化的操作,可轻松快速完成拖拽表单编辑设计器、数据列表页设计、流程管理设计器、数据大屏可视化拖拽设计编辑器
- 基于BufferedRandomAccessFile+Forkjoin读取大数据文件详细文档+全部资料+源码.zip
- 基于C#,数据库的大学生宿舍管理系统详细文档+全部资料+源码.zip
- 基于CNN训练的一套 "端到端" 的验证码识别模型,使用深度学习+训练数据+大量计算力,纯数字识别率高达 99.99%,数字+字母识别率 96%详细文档+全部资料+源码.zip
- 基于easyexcel大数据量数据导入导出异步处理组件详细文档+全部资料+源码.zip
- 基于Element-UI的Table 组件开发的虚拟滚动组件,支持动态高度,解决数据量大时滚动卡顿的问题详细文档+全部资料+源码.zip
- 基于Echarts的可视化数据大屏设计器(包含设计、预览、分享等全部流程)详细文档+全部资料+源码.zip
- 基于Echarts实现的数据中心超大屏幕监控详细文档+全部资料+源码.zip
- 1
- 2
前往页