MyBatis的增删改查实现

news/2025/2/1 11:52:52/文章来源:https://www.cnblogs.com/loubin/p/18696230

首先还是使用上一篇文章相同的数据表和实体类,如下图所示

 

 

 1 package com.loubin.pojo;
 2 
 3 public class User {
 4     private int id;
 5     private String name;
 6     private String pwd;
 7 
 8     public int getId() {
 9         return id;
10     }
11 
12     public void setId(int id) {
13         this.id = id;
14     }
15 
16     public String getName() {
17         return name;
18     }
19 
20     public void setName(String name) {
21         this.name = name;
22     }
23 
24     public String getPwd() {
25         return pwd;
26     }
27 
28     public void setPwd(String pwd) {
29         this.pwd = pwd;
30     }
31 
32     @Override
33     public String toString() {
34         return "User{" +
35                 "id=" + id +
36                 ", name='" + name + '\'' +
37                 ", pwd='" + pwd + '\'' +
38                 '}';
39     }
40 
41     public User(int id, String name, String pwd) {
42         this.id = id;
43         this.name = name;
44         this.pwd = pwd;
45     }
46 }

 

 

然后是在接口UserMapper.java中增加增删改查的接口,如下代码所示

 1 package com.loubin.dao;
 2 
 3 import com.loubin.pojo.User;
 4 
 5 import java.util.List;
 6 
 7 public interface UserMapper {
 8     List<User> getUserList();
 9     User getUserById(int id);
10     int insertUser(User user);
11     int updateUser(User user);
12     int deleteUser(int id);
13 }

 

然后在映射文件UserMapper.xml中增加sql实现,如下代码所示

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.loubin.dao.UserMapper">
 6     <select id="getUserList" resultType="com.loubin.pojo.User">
 7         select * from mybatis.user;
 8     </select>
 9 
10     <select id="getUserById" resultType="com.loubin.pojo.User" parameterType="int">
11         select * from user where id = #{id};
12     </select>
13 
14     <insert id="insertUser" parameterType="com.loubin.pojo.User">
15         insert into user(id, name, pwd) values (#{id}, #{name}, #{pwd});
16     </insert>
17 
18     <update id="updateUser" parameterType="com.loubin.pojo.User">
19         update user set  name = #{name}, pwd=#{pwd} where id = #{id};
20     </update>
21 
22     <delete id="deleteUser" parameterType="int">
23         delete
24         from user
25         where id = #{id};
26     </delete>
27 </mapper>

 

然后是在测试类中进行测试,如下代码所示,别忘了在插入,修改,删除的方法中要显示提交,即session.commit()

 1 package com.loubin.dao;
 2 
 3 import com.loubin.pojo.User;
 4 import com.loubin.utils.MybatisUtils;
 5 import org.apache.ibatis.session.SqlSession;
 6 import org.junit.Test;
 7 
 8 import java.util.List;
 9 
10 public class UserMapperTest {
11     @Test
12     public void test(){
13         SqlSession session = MybatisUtils.getSqlSession();
14         UserMapper userMapper = session.getMapper(UserMapper.class);
15         List<User> userList = userMapper.getUserList();
16 
17         for (User user : userList) {
18             System.out.println(user);
19             System.out.println("lll");
20         }
21         session.close();
22     }
23 
24     @Test
25     public void selectUserById() {
26         SqlSession session= MybatisUtils.getSqlSession();
27         UserMapper userMapper= session.getMapper(UserMapper.class);
28         User user = userMapper.getUserById(1);
29         System.out.println(user);
30         session.close();
31     }
32 
33     @Test
34     public void insertUser(){
35         SqlSession sqlSession = MybatisUtils.getSqlSession();
36         UserMapper userMapper= sqlSession.getMapper(UserMapper.class);
37         userMapper.insertUser(new User(6, "哈哈", "22222"));
38         sqlSession.commit();
39         sqlSession.close();
40     }
41 
42     @Test
43     public void updateUser(){
44         SqlSession sqlSession = MybatisUtils.getSqlSession();
45         UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
46         userMapper.updateUser(new User(6, "嘿嘿", "33333"));
47         sqlSession.commit();
48         sqlSession.close();
49     }
50 
51     @Test
52     public void deleteUser(){
53         SqlSession session = MybatisUtils.getSqlSession();
54         UserMapper userMapper = session.getMapper(UserMapper.class);
55         userMapper.deleteUser(6);
56         session.commit();
57         session.close();
58     }
59 }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/877535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Reqable:现代化 API 调试工具

Reqable 是一款专为开发者设计的现代化 API 调试工具,旨在简化 API 开发、测试和调试的流程。 它支持多种协议(如 HTTP、HTTPS、WebSocket 等),并提供了丰富的功能,帮助开发者更高效地构建、调试和分析 API 请求与响应。 Reqable 以其简洁的设计、强大的功能和卓越的性能,…

DeepSeek-R1?别信新闻,它真能打败 OpenAI?

Yy DeepSeek-R1?别信新闻 它真的是那个打败 OpenAI 的开源黑马模型,还是又一条假新闻? Fabio Matricardi它真的那么厉害……是在哪方面? 前言:DeepSeek在大模型小型以及优化的道路上探索蒸馏和纯强化学习的路径获得的一点成绩确实让美国人紧张了一把,但同时也招致了更严格…

6.演讲比赛流程管理系统

基于STL的演讲比赛流程管理系统。1.需求2.文件目录3.代码 3.1Speaker.h #pragma once #include<iostream> using namespace std;class Speaker {public:string m_Name;double m_Score[2];};3.2SpeechManager.h #pragma once #include<iostream> #include<vector…

Qwen2.5-VL:更强大的多模态大模型|附实测结果

模型更新简述 几天前,通义千问更新了最新的多模态大模型Qwen2.5-VL,拥有包含 3B、7B 和 72B 在内的 3 个模型尺寸,同时完全开源,可在huggingface和modelscope下载到所有模型权重。 1. 更灵活的时空维度处理 ● 空间维度上,动态地将不同尺寸的图像转换为不同长度的token,并…

第五节上,图像分类实战,食物分类

随机种子固定随机结果,方便复现 def seed_everything(seed):torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)torch.backends.cudnn.benchmark = Falsetorch.backends.cudnn.deterministic = Truerandom.seed(seed)np.random.seed(seed)o…

对比使用DeepSeek与文新一言,了解DeepSeek的关键技术论文

DeepSeek是国内大模型技术的新秀,最近也在业界和媒体界火爆出圈,所以想学习一下其技术。 大模型时代,学习知识,当然首先想到利用大模型,由于在过去一年,对DeepSeek使用不多,所以想和文新一言(4.0 Turbo)对比使用。 通过对比,针对同一个问题“DeepSeek发扬开源文化,将…

Cisco NX-OS Software Release 10.5(2)F - 网络操作系统软件

Cisco NX-OS Software Release 10.5(2)F - 网络操作系统软件Cisco NX-OS Software Release 10.5(2)F - 网络操作系统软件 NX-OS 网络操作系统 请访问原文链接:https://sysin.org/blog/cisco-nx-os-10/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgCisco NX-OS…

pdf处理--tts(待重写)

1.提取正文2.裁剪页眉 https://smallpdf.com/cn/crop-pdf#r=crop-pages3.拆分4.ocr 效果图--白描:效果图--4Videosoft PDF Converter Ultimate:5.阅读器与tts引擎 开源阅读:https://github.com/gedoor/legado tts-server-android:https://github.com/jing332/tts-server-an…

INFINI Labs 产品更新 | Console 发布 TopN 功能,Easysearch 新增 Rollup 能力等

INFINI Labs 产品全新发布!此次更新为大家带来了 Console 的全新 TopN 功能,让您能够更高效地定位最关键的节点或索引;Easysearch 新增 Rollup 能力,大幅提升监控指标的存储周期并优化分析体验;此外,Framework 还修复了多项缺陷并进行了多处优化。欢迎下载体验,探索更多…

03-一个例子

登录被测系统bysms双击运行runserver.bat 访问页面:http://127.0.0.1/mgr/sign.html 账号:byhy,密码:88888888 可以直接在pycharm的Terminal中运行hytest,不需要打开命令行窗口 浏览器驱动的打印信息: 禁止 chromedriver 日志写屏1 from selenium import webdriver 2 3 …

blog tips

markdown 内嵌 html 使图片并排点击查看代码 <div style="display: flex; gap: 10px; justify-content: space-between;"><img src="图片1地址" style="width: 49%; height: auto;"/><img src="图片2地址" style="…

【数学】已知正方形相邻两点坐标求另外两点坐标

已知正方形相邻两点(a,b)与(c,d)坐标公式: \( (x_3,y_3) = (c + (b-d), d - (a-c)) \\ (x_4,y_4) = (a + (b-d), b - (a-c)) \\ (x_5,y_5) = (a - (b-d), b + (a-c)) \\ (x_6,y_6) = (c - (b-d), d + (a-c)) \)