CRUD操作
新增
前面已写... ,实际为调用 sqlSession.insert()
方法
查询
精确查询
查询结果只有一个
映射文件
<?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 cityspace="mybatis_test.CitiesMapper"> <resultMap id="citiesMap" type="mybatis_test.Cities"> ... </resultMap> <!-- resultMap是返回值类型,为上面定义的resultMap标签的id --> <select id="selectById" parameterType="int" resultMap="citiesMap"> select * from cities where id=#{id}; </select> </mapper>
DAO层方法
查询结果只有一个对象,使用自动调用sqlSession.SelectOne
方法
public interface CitiesMapper { Cities selectById(int id) throws Exception; } public class CitiesTest { @Test public void selectByIdTest(){ SqlSession sqlSession= MybatisUtil.getSqlSession(); CitiesMapper citiesMapper=sqlSession.getMapper(CitiesMapper.class); try { //自动调用`sqlSession.SelectOne`方法 Cities cities=citiesMapper.selectById(2); sqlSession.commit(); System.out.println(cities.getCity()); } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); }finally { //关闭sqlSession MybatisUtil.closeSqlSession(); } } }
查询结果有多个
映射文件
<!-- 返回值应该是List<Student>,但是resultMap只需写集合中的类型就行 --> <select id="findAll" resultMap="citiesMap"> select * from cities; </select>
DAO层方法
查询结果有多个对象,自动调用sqlSession.SelectList
方法
分页查询(范围查询)
映射文件
<!-- 分页查询,参数有多个,使用map接收参数 --> <select id="pageFind" parameterType="map" resultMap="citiesMap"> <!-- 根据key自动找到对应Map集合的value --> select * from cities limit #{start},#{end}; </select>
DAO层代码
分页是需要多个参数的,当需要接收多个参数的时候,可以使用Map集合来装载
@Test public void pageFindTest(){ SqlSession sqlSession= MybatisUtil.getSqlSession(); CitiesMapper citiesMapper=sqlSession.getMapper(CitiesMapper.class); HashMap<String,Integer> map=new HashMap<String, Integer>(); map.put("start",2); map.put("end",3); try { List<Cities> cities=citiesMapper.pageFind(map); sqlSession.commit(); } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); }finally { MybatisUtil.closeSqlSession(); } }
删除
映射文件
<!-- 无返回值 --> <delete id="delete" parameterType="int"> delete from cities where id=#{id}; </delete>
DAO层方法,调用 sqlSession.delete()
方法
修改
映射文件
<!-- 无返回值 --> <update id="update" parameterType="mybatis_test.Cities"> update cities set city=#{city} where id=#{id}; </update>
DAO层方法,调用 sqlSession.update()
方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具