【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文件就好了。

    <!--
     按主键id查询学生信息
     Student getById(Integer id);
   -->
   <!--
   parameterType: 表示有参数输入 
   resultType:输出结果的泛型,一定注意写的是泛型
   -->
    <select id="getById" parameterType="int" resultType="com.longlong.pojo.Student">
        select id,name,email,age
        from student
        where id=#{id}
    </select>

接下来就可以测试了,我们再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();
    }
}

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

在这里插入图片描述

按学生名称模糊查询

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

<!--
      按学生名称模糊查询
      List<Student> getByName(String name);
    -->
    <select id="getByName" parameterType="string" resultType="com.longlong.pojo.Student">
        select id,name,email,age
        from student
        where name like '%${name}%'
    </select>

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

@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();
    }

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

在这里插入图片描述

增加学生

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

<!--
      增加学生
      int insert(Student stu);

      实体类:
        private Integer id;
        private String name;
        private String email;
        private Integer age;
    -->
    <insert id="insert" parameterType="com.longlong.pojo.Student">
        insert into student (name,email ,age) values(#{name},#{email},#{age})
    </insert>

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

@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();
    }

结果展示如下

在这里插入图片描述

按主键删除学生

修改StudentMapper.xml文件

 <!--
      按主键删除学生
      int delete(Integer id);
    -->
    <delete id="delete" parameterType="int" >
        delete from student where id=#{id}
    </delete>

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

@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();
    }

结果展示如下

在这里插入图片描述

在这里插入图片描述

更新学生

修改StudentMapper.xml文件

<!--
      更新学生
      int update(Student stu);
    -->
    <update id="update" parameterType="com.longlong.pojo.Student">
        update student set name=#{name},email=#{email},age=#{age}
        where id=#{id}
    </update>

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

@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();
    }

结果如下

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


✨总结

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

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

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

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

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

  • 67
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 72
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃听雨~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值