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

简介: 通过前一篇文章我们可以自己创建项目,并且测试框架,但是我们的功能十分简单。本节将为案例增加五个功能,随着项目的深入,更多知识也将涉及。

✨前言


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


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

  • 按主键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,自取链接



相关文章
|
18天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
107 29
|
16天前
|
Java 数据库连接 Spring
MyBatis-Plus关键功能使用
通过本文的详细介绍,您可以系统地了解并掌握MyBatis-Plus的关键功能,进一步提高开发效率和代码质量。
55 23
|
3月前
|
SQL Java 数据库连接
深入 MyBatis-Plus 插件:解锁高级数据库功能
Mybatis-Plus 提供了丰富的插件机制,这些插件可以帮助开发者更方便地扩展 Mybatis 的功能,提升开发效率、优化性能和实现一些常用的功能。
538 26
深入 MyBatis-Plus 插件:解锁高级数据库功能
|
3月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
75 1
持久层框架MyBatisPlus
|
4月前
|
Java 数据库连接 容器
Mybatis-Plus核心功能
Mybatis-Plus核心功能
|
4月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
112 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
4月前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
256 0
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
4月前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
163 0
|
5月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
87 0
|
4天前
|
存储 Java 关系型数据库
ssm026校园美食交流系统(文档+源码)_kaic
本文介绍了基于Java语言和MySQL数据库的校园美食交流系统的设计与实现。该系统采用B/S架构和SSM框架,旨在提高校园美食信息管理的效率与便捷性。主要内容包括:系统的开发背景、目的及内容;对Java技术、MySQL数据库、B/S结构和SSM框架的介绍;系统分析部分涵盖可行性分析、性能分析和功能需求分析;最后详细描述了系统各功能模块的具体实现,如登录、管理员功能(美食分类管理、用户管理等)和前台首页功能。通过此系统,管理员可以高效管理美食信息,用户也能方便地获取和分享美食资讯,从而提升校园美食交流的管理水平和用户体验。