• Day 80


    _查询-单条件-动态查询

    1. 从多个条件中选择一个

    2. choose(when,otherwise): 选择,类似于java中的switch语句

    3. 在这里插入图片描述

    4. 在这里插入图片描述

    _配置文件完成增删改查

    1. 编写接口方法:Mapper接口

    2. 参数:除了id之外的所有数据

    3. 结果:void

    4. 编写sql语句:sql映射文件

    5. 执行方法,测试

      • Mybatis事务:
      • openSession():默认开启事务,进行增删改操作之后需要使用sqlSession.commit();手动提交事务
      • openSession(true):可以设置为自动提交事务(关闭事务)
    6. 在这里插入图片描述

    7. 在这里插入图片描述

    8. 此时注意:在添加数据的时候如果之前有数据库表中的数据删除过,那么所添加的信息的主键id将会继承之之前被删除的数据的主键的id序号并且继续自增;

      • 解决方法:在图形化工具中,或者是控制台重新定义当前所要添加的主键序列号

      • -- 修改id自增排序
        alter table tb_brand auto_increment = 4; -- 此时的主键id序列就被改为了4,即下一条数据的主键id为4
        
        • 1
        • 2
    9. 在这里插入图片描述

    10. public void dataAdd() {
              int status = 0;
              String brand_name = "8848钛金手机";
              String address = "北京";
              int ordered = 20;
      
              // 封装参数
              Brand brand = new Brand();
              brand.setStates(status);
              brand.setName(brand_name);
              brand.setAddress(address);
              brand.setOrdered(ordered);
              InputStream is = null;
              try {
                  is = Resources.getResourceAsStream("mybatis-config.xml");
                  SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
                  SqlSessionFactory sf = sqlSessionFactoryBuilder.build(is);
                  SqlSession sqlSession = sf.openSession(true);
                  // 获取mapper接口
                  BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
      
                  // 执行sql语句
                  mapper.add(brand);
      //            List result = mapper.selectByCondition(status, brand_name, address);
                  // 返回执行结果
      
                  // 释放资源
                  sqlSession.close();
      
              } catch (IOException e) {
                  e.printStackTrace();
              } finally {
                  try {
                      is.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
          }
      ============================================================
      
      Process finished with exit code 0
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
    11. 执行结果为:在这里插入图片描述

    _添加数据的同时返回添加数据的主键

    1. 返回数据的主键只用在xml文件中设定两个值就行:
      在这里插入图片描述2. 其他的都和正常的数据添加一样,由此查询的结果为:
    •  public void dataAdd() {
               int status = 0;
               String brand_name = "8848钛金手机";
               String address = "北京";
               int ordered = 20;
       
               // 封装参数
               Brand brand = new Brand();
               brand.setStates(status);
               brand.setName(brand_name);
               brand.setAddress(address);
               brand.setOrdered(ordered);
               InputStream is = null;
               try {
                   is = Resources.getResourceAsStream("mybatis-config.xml");
                   SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
                   SqlSessionFactory sf = sqlSessionFactoryBuilder.build(is);
                   SqlSession sqlSession = sf.openSession(true);
                   // 获取mapper接口
                   BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
       
                   // 执行sql语句
                   mapper.add(brand);
       //            List result = mapper.selectByCondition(status, brand_name, address);
       
                   // 返回执行结果-->得到id的值
                   Integer id = brand.getId();
       
                   // 将得到的id输出再控制面板
                   System.out.println("执行的对象的id为:"+id);
       
                   // 释放资源
                   sqlSession.close();
       
               } catch (IOException e) {
                   e.printStackTrace();
               } finally {
                   try {
                       is.close();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
               }
           }
       =======================================================
       执行的对象的id为:6
       
       Process finished with exit code 0
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48

    在这里插入图片描述

    _修改数据库中的数据

    1. 在mapper接口文件中定义update方法:在这里插入图片描述

    2. 在xml文件中映射接口文件:在这里插入图片描述

    3. 在test文件中编写java代码实现修改数据的sql:

      •     // 修改数据库中的数据
            public void update() {
                int status = 0;
                String brand_name = "智能老人机";
                String address = "北京";
                int ordered = 100;
                int id = 4;
        
                // 封装参数
                Brand brand = new Brand();
                brand.setId(id);
                brand.setStates(status);
                brand.setName(brand_name);
                brand.setAddress(address);
                brand.setOrdered(ordered);
        
                InputStream is = null;
                try {
                    is = Resources.getResourceAsStream("mybatis-config.xml");
                    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
                    SqlSessionFactory sf = sqlSessionFactoryBuilder.build(is);
                    SqlSession sqlSession = sf.openSession(true);
        
                    // 获取mapper接口
                    BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
                    int result = mapper.update(brand);
        
                    // 控制台返回执行结果
                    System.out.println("结果为:"+result);
        
                    // 释放资源
                    sqlSession.close();
        
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        ============================================
        结果为:1
        
        Process finished with exit code 0
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
      • 在这里插入图片描述

  • 相关阅读:
    【Python】爬取软科中国大学排行榜2022
    【Java系列】SpringBoot 集成MongoDB 详细介绍
    3d可视化智慧机房管理系统避免风险损失
    实际应用效果不佳?来看看提升深度神经网络泛化能力的核心技术(附代码) ⛵
    单流 TCP 100Gbps+ 难题的直观解释
    Hexagon cDSP芯片简介
    李沐_动手学深度学习第5章卷积神经网络第二部分_笔记
    Gitea:开源世界的协作灵魂
    基于JAVA医药垃圾分类管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    软件设计模式系列之七——原型模式
  • 原文地址:https://blog.csdn.net/ALVIS_108/article/details/125885277