【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,自取链接



相关文章
|
SQL Java 数据安全/隐私保护
发现问题:Mybatis-plus的分页总数为0,分页功能失效,以及多租户插件的使用。
总的来说,使用 Mybatis-plus 确实可以极大地方便我们的开发,但也需要我们理解其工作原理,掌握如何合适地使用各种插件。分页插件和多租户插件是其中典型,它们的运用可以让我们的代码更为简洁、高效,理解和掌握好它们的用法对我们的开发过程有着极其重要的意义。
1096 15
|
SQL Java 数据库连接
2-SSM框架篇
Spring框架核心知识点总结,涵盖IOC、DI、Bean作用域、事务管理、AOP、Spring MVC流程及MyBatis相关问题。内容包括控制反转与依赖注入原理、Bean生命周期与线程安全、事务传播机制、JDK与CGLIB代理区别、MyBatis动态SQL与缓存机制等高频面试题。
230 0
|
Java 关系型数据库 MySQL
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
本文针对高校体育场管理系统的开发与实现进行详细介绍。随着经济快速发展,人们对手机软件需求增加,高校体育场管理系统应运而生。系统采用JAVA技术、Mysql数据库和SSM框架等成熟技术,通过分析功能需求、可行性及性能,设计出包含管理员、用户和学生角色的功能模块。系统实现用户注册登录、信息管理等功能,简化传统手工统计模式,提高管理效率,满足用户对信息获取的及时性与准确性需求。
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
|
小程序 JavaScript 关系型数据库
weixin118电影院订票选座系统设计及实现+ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的电影院订票选座系统。该系统采用WXML、WXS、JS小程序语言开发,结合微信开发者工具和MYSQL数据库,实现了便捷的订票选座功能。用户无需下载安装,通过微信即可快速访问,操作简单高效。系统分为用户与管理员两大模块,支持电影信息查询、在线选座、订单管理等功能,同时确保数据安全与用户体验。经过可行性分析、功能设计、测试等环节,系统表现出良好的稳定性、实用性和可扩展性,为用户提供了一个全面、便捷的订票平台。
|
小程序 Java 关系型数据库
weixin030英语学习交流平台小程序+ssm(文档+源码)_kaic
本文介绍了英语学习交流平台小程序的开发全过程,包括系统分析、设计与实现。该小程序基于Java的SSM框架进行后端管理开发,使用MySQL作为数据库,并借助微信开发者工具确保系统稳定性。小程序设有管理员和用户两个角色,功能涵盖个人中心、每日打卡、学习计划、论坛交流等,具有操作简单、界面清晰、功能齐全的特点。通过技术可行性、经济可行性和操作可行性分析,证明了系统的实用性和高效性,为英语学习者提供了一个便捷的交流平台。
|
小程序 Java 关系型数据库
weixin025移动学习平台的设计与实现+ssm(文档+源码)_kaic
基于微信小程序的移动学习平台旨在解决传统APP占用过多手机存储空间的问题,提升用户体验。该平台使用微信开发者工具开发前端,SSM框架和Java语言开发后台,并采用MySQL数据库保存数据。系统支持管理员对教师、课程、学生信息进行管理,教师可查看及审核作业,管理课程资源;学生能提交作业、查看审核结果并收藏或评论课程资源。此平台使用户无需安装独立APP即可访问学习内容,极大提升了便捷性和管理效率。 关键词:基于微信小程序的移动学习平台;微信开发者工具;SSM框架
|
安全 小程序 Java
weixin027校园二手平台的设计与实现+ssm(文档+源码)_kaic
本项目基于微信小程序开发校园二手交易平台,旨在解决大学生闲置物品交易问题。系统采用Java语言和MySQL数据库设计,支持用户浏览、收藏、评价商品及发布闲置物品。管理员可审核商品和用户信息,确保交易安全。系统具备在线搜索功能,方便用户查找商品,并提供实时沟通渠道,增强平台透明度和用户体验。该平台简化了二手交易流程,满足了大学生对便捷、高效交易的需求,具有重要的实际应用价值。
|
小程序 Java 关系型数据库
weixin116大学生就业平台微信小程序+ssm(文档+源码)_kaic
本文介绍了一款大学生就业平台微信小程序的开发过程,涵盖开发环境、系统设计、实现与测试等方面。该小程序基于微信平台特性,采用MYSQL数据库存储数据,确保系统稳定与安全,同时满足学生、企业和管理员不同权限用户的功能需求。通过简化操作流程,实现了招聘信息查看、简历投递等实用功能,旨在为用户提供便捷高效的求职体验,符合“操作简单,功能实用”的设计理念。
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
前端开发 Java 关系型数据库
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
605 17