MyBatis:配置文件完成增删改查_添加

1 实现添加操作

  1. 编写接口方法:Mapper接口
  1. 编写sql语句:sql映射文件
cpp 复制代码
   <insert id="add">

        insert into tb_brand(brand_name,company_name,ordered,description,status)
        values
        (#{brandName},#{companyName},#{ordered},#{description},#{status});

    </insert>
  1. 执行方法,测试

MyBatis事务:

  • openSession():默认开启事务,进行增删改操作后需要使用sqlSession.commit();手动提交事务
  • openSession(true):设置为自动提交事务(关闭事务)
cpp 复制代码
  @Test
    public void testAdd() throws Exception{
        int status = 1;
        String brandName = "波导";
        String companyName = "波导手机";
        String description = "手机中的战斗机";
        int ordered = 100;

        Brand brand = new Brand();
        brand.setStatus(status);
        brand.setBrandName(brandName);
        brand.setCompanyName(brandName);
        brand.setDescription(description);
        brand.setOrdered(ordered);

        // 加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 获取UserMapper接口的代理对象
        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);

        brandMapper.add(brand);
        sqlSession.commit();
        sqlSession.close();
    }


2 主键返回

在数据添加成功后,需要获取插入数据库数据的主键的值

比如:添加订单和订单项

  1. 添加订单
  2. 添加订单项,订单项中需要设置所属订单的id


解决:

cpp 复制代码
    <insert id="add" useGeneratedKeys="true" keyProperty="id">

        insert into tb_brand(brand_name,company_name,ordered,description,status)
        values
        (#{brandName},#{companyName},#{ordered},#{description},#{status});

    </insert>


相关推荐
mjy_1113 分钟前
Linux下的软件编程——文件IO
java·linux·运维
进阶的小名11 分钟前
@RequestMapping接收文件格式的形参(方法参数)
java·spring boot·postman
种子q_q1 小时前
Java基础之JUC与JMM
java·后端·面试
言熙1 小时前
ThreadPoolExecutor详解
java·后端
AAA修煤气灶刘哥1 小时前
上手 Velocity:让 Java 代码自动生成,告别重复劳动的实战指南
java·后端
写bug写bug1 小时前
搞懂MyBatis拦截器的工作原理
java·后端·mybatis
Seven972 小时前
剑指offer-21、栈的压⼊、弹出序列
java
一只叫煤球的猫2 小时前
讲讲ResponseEntity的前世今生和水土不服
java·后端·spring
架构师沉默2 小时前
MyBatis 四大组件深度剖析:从原理到实战
java·后端·架构
侧耳倾听1112 小时前
Java的异常机制
java·开发语言