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>


相关推荐
oak隔壁找我5 小时前
JVM常用调优参数
java·后端
蝎子莱莱爱打怪9 小时前
OpenClaw 从零配置指南:接入飞书 + 常用命令 + 原理图解
java·后端·ai编程
狼爷10 小时前
Go 没有 override?别硬套继承!用接口+嵌入,写更清爽的“覆盖”逻辑
java·go
小兔崽子去哪了13 小时前
Java 自动化部署
java·后端
ma_king13 小时前
入门 java 和 数据库
java·数据库·后端
后端AI实验室13 小时前
我用Cursor开发了3个月,整理出这套提效4倍的工作流
java·ai
码路飞17 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
SimonKing18 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven9719 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
怒放吧德德1 天前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty