• 【SSM框架】Mybatis详解05(源码自取)增加五大功能


    • 🧛‍♂️个人主页:杯咖啡
    • 💡进步是今天的活动,明天的保证!
    • ✨目前正在学习:SSM框架,算法刷题
    • 👉本文收录专栏:SSM框架解析
    • 🙌牛客网,刷算法过面试的神级网站,用牛客你也牛。 👉免费注册和我一起学习刷题👈
    • 🐳希望大家多多支持🥰一起进步呀!
    • 😎The great tragedy of life is not that men perish, but that they cease to love.
      人生的最大悲剧不是死亡,而是他们不再去爱。-威廉·萨默塞特·毛姆

    ✨前言

    通过前一篇文章我们可以自己创建项目,并且测试框架,但是我们的功能十分简单。

    本节将为案例增加五个功能,随着项目的深入,更多知识也将涉及。本节增加功能如下:

    • 按主键id查询学生信息
    • 按学生名称模糊查询
    • 增加学生
    • 按主键删除学生
    • 更新学生


      一起来学习实践吧!!!!!


    增加功能

    按主键id查询学生信息

    首先我们添加sql语句,这样就很方便了。
    我们只需要 修改StudentMapper.xml文件就好了。

        
       
        <select id="getById" parameterType="int" resultType="com.longlong.pojo.Student">
            select id,name,email,age
            from student
            where id=#{id}
        select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    接下来就可以测试了,我们再Mytest类里添加以下代码进行测试。

     @Test
        public void testGetById() throws IOException {
        		//读取核心配置文件
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            //获取工厂对象
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            //获取sqlSession对象,本对象可以编译和执行sql代码
            SqlSession sqlSession = factory.openSession();
    				//注意,这里使用的方法与 getAll 的方法不一样哦,因为这个需要传入参数。
            Student student = sqlSession.selectOne("ll.getById",1);
           System.out.println(student);
    				//关闭sqlSession对象
            sqlSession.close();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    测试结果,这样表示正确哦!

    在这里插入图片描述

    按学生名称模糊查询

    按照学生名称模糊查询这个功能也是很常见的哦!
    接下来我们就来完成它吧!
    首先我们依旧修改StudentMapper.xml文件。

    
        <select id="getByName" parameterType="string" resultType="com.longlong.pojo.Student">
            select id,name,email,age
            from student
            where name like '%${name}%'
        select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    接下来就可以编写测试类了。加入以下代码。本次操作和第一个比较像,详解看第一个代码注释哦!!

    @Test
        public void testGetByName() throws IOException {
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
    
            List<Student> list = sqlSession.selectList("ll.getByName","李");
    //       list.forEach(student -> System.out.println(student));
            for (Student student : list){
                System.out.println(student);
            }
    
            sqlSession.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    注意:这里的接收的结果是列表,因为模糊查询可能有很多个结果,所以要列表来存起来哦!
    看结果咯

    在这里插入图片描述

    增加学生

    增加功能也还是个常见的功能。以下的步骤和之前的一样哦,下面只写细节。
    修改StudentMapper.xml文件。

    
        <insert id="insert" parameterType="com.longlong.pojo.Student">
            insert into student (name,email ,age) values(#{name},#{email},#{age})
        insert>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    测试类,注意这里一定要手动提交哦

    @Test
        public void testInsert() throws IOException {
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
    
            int num = sqlSession.insert("ll.insert",new Student("张三","208970239@qq.com",20));
            SqlSession.commit();
            System.out.println(num);
    
            sqlSession.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果展示如下

    在这里插入图片描述

    按主键删除学生

    修改StudentMapper.xml文件

     
        <delete id="delete" parameterType="int" >
            delete from student where id=#{id}
        delete>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    添加测试类,注意,这里一定要手动提交哦

    @Test
        public void testDelete() throws IOException {
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
    
            int num = sqlSession.delete("ll.delete", 2 );
            sqlSession.commit();
            System.out.println(num);
    
            sqlSession.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果展示如下

    在这里插入图片描述

    在这里插入图片描述

    更新学生

    修改StudentMapper.xml文件

    
        <update id="update" parameterType="com.longlong.pojo.Student">
            update student set name=#{name},email=#{email},age=#{age}
            where id=#{id}
        update>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    修改测试类,注意手动提交

    @Test
        public void testUpdate() throws IOException {
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
    
            int num = sqlSession.update("ll.update", new Student(3,"王柳","788078@qq.com",20) );
            sqlSession.commit();
            System.out.println(num);
    
            sqlSession.close();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结果如下

    在这里插入图片描述在这里插入图片描述


    ✨总结

    今天我们我们添加了一些常用的功能,并且成功。用了框架之后,每次的增加功能就变的十分简单,我们主需要专注sql的编写就好。
    接下来后面会详细讲解MyBatis对象分析代码注意事项,继续改造案例
    本次源码放在代码仓库gitee,自取链接

    原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

    点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

    收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

    评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

  • 相关阅读:
    python:日期时间处理
    SHELL中的数组及其相关操作
    MySQL数据库之存储引擎
    淘宝/天猫API 获得淘宝app商品详情原数据(优惠券详情)
    Sentinel的简单介绍和使用
    Springboot毕设项目短视频网站r3k6x(java+VUE+Mybatis+Maven+Mysql)
    【C语言】利用数组处理批量数据(字符数组)
    OpenCV-Python学习(12)—— OpenCV 向图像添加文本(cv.putText、cv.getTextSize)
    乐观锁思想在JAVA中的实现——CAS
    听懂未来:AI语音识别技术的进步与实战
  • 原文地址:https://blog.csdn.net/muzi_longren/article/details/125965052