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>


相关推荐
喂完待续10 分钟前
【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发
java·后端·spring·big data·spring data·序列晋升
郑重其事,鹏程万里13 分钟前
commons-exec
java
龙茶清欢14 分钟前
具有实际开发参考意义的 MyBatis-Plus BaseEntity 基类示例
java·spring boot·spring cloud·mybatis
神龙斗士24017 分钟前
Java 数组的定义与使用
java·开发语言·数据结构·算法
计算机学姐18 分钟前
基于微信小程序的扶贫助农系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
白露与泡影18 分钟前
2025互联网大厂高频Java面试真题解析
java·开发语言·面试
forever銳19 分钟前
java中如何保证接口幂等性
java·后端
柯南二号21 分钟前
【Java后端】MyBatis 和 MyBatis-Plus (MP) 的区别
java·数据库·tomcat
C++chaofan24 分钟前
游标查询在对话历史场景下的独特优势
java·前端·javascript·数据库·spring boot
匿名45928 分钟前
Lombok注解使用无效的情况(未能获得后端数据)
java·开发语言