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>


相关推荐
qiaosaifei13 分钟前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言
聪明蛋子哟17 分钟前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
文子越来越强28 分钟前
【双因子认证】拦截注解@MFACheck 接入指南(其他微服务如何用)
java
ZGG0031 小时前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端
迪康Defender1 小时前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全
京师20万禁军教头2 小时前
47-常用类-八大包装类(Wrapper Classes)
java
come112342 小时前
剪映零基础教程
java·linux·运维
16月6日-晴2 小时前
Java面向对象——接口
java·开发语言
苏生Susheng2 小时前
【软件实施】Windows 服务器运维实战
java·运维·服务器·windows·spring boot·javaweb·实施
Java小白笔记2 小时前
Java 实现 ZIP 压缩包生成方案
java·开发语言·网络·7-zip