详解MyBatis(二)

目录

1.MyBatis的基本操作

1.1增(Insert)

1.1.1返回主键

 1.2删(Delete)

1.3改(Update)

1.4查(Select)

1.4.1起别名

1.4.2结果映射 

 1.4.3开启驼峰命名(推荐)

2.MyBatis XML配置文件

2.1 配置连接字符串和MyBatis

2.2添加Mapper接口

2.3添加 UserInfoXMLMapper.xml

2.4增删改查操作

2.4.1增(Insert)

 2.4.2删(Delete)

2.4.3改(Update)

2.4.4查(Select)


承接上文 详解MyBatis(一)

1.MyBatis的基本操作

1.1增(Insert)

SQL语句:

insert into userinfo (username, `password`, age, gender, phone) values
("zhaoliu","zhaoliu",19,1,"18700001234")

Mapper接口:

SQL中的常量替换为动态的参数,直接使⽤UserInfo对象的属性名来获取参数

 @Insert("insert into userinfo (username, `password`, age, gender, phone) values (#{username}, #{password}, #{age}, #{gender}, #{phone})")
    Integer insert(UserInfo userInfo);

测试代码:

    @Test
    void insert() {
             UserInfo userInfo = new UserInfo();
             userInfo.setUsername("zhaoliu");
             userInfo.setPassword("zhaoliu");
             userInfo.setGender(2);
             userInfo.setAge(21);
             userInfo.setPhone("18612340005");
             userInfoMapper.insert(userInfo);

    }

运行后, 观察数据库执行结果:

1.1.1返回主键

Insert 语句默认返回的是 受影响的

但有些情况下, 数据插入之后, 还需要有后续的关联操作, 需要获取到新插入数据的id

如订单系统、我们下完订单之后, 需要通知物流系统, 库存系统, 这时候就需要拿到订单ID

如果想要拿到自增id, 需要在Mapper接口的方法上添加⼀个Options的注解:

    @Options(useGeneratedKeys = true, keyProperty = "id")
    @Insert("insert into userinfo (username, age, gender, phone) values (#{userinfo.username}, #{userinfo.age}, #{userinfo.gender}, #{userinfo.phone})")
    Integer insert(UserInfo userInfo);

`useGeneratedKeys` 是 MyBatis 中的一个属性设置。 当设置为 `true` 时,它表示在执行插入操作后,希望获取由数据库自动生成的主键值(如果存在)并将其设置到插入对象对应的属性中。这样可以方便地获取到新插入记录的主键值,以便后续进行相关操作。

当在 MyBatis 的配置文件中设置了`useGeneratedKeys=true`时,表示使用数据库的自增主键。而keyProperty属性则用于将自动生成的主键与实体类的属性进行绑定。通过将keyProperty设置为实体类中对应的属性名,MyBatis 会在执行插入操作后,将自动生成的主键值赋给该属性

例如,如果实体类中有一个名为id的属性用于存储主键值,可以将keyProperty设置为"id"

测试代码:

    @Test
    void insert() {
             UserInfo userInfo = new UserInfo();
             userInfo.setUsername("Romised");
             userInfo.setPassword("Romised");
             userInfo.setGender(2);
             userInfo.setAge(22);
             userInfo.setPhone("1525523111");

             Integer count = userInfoMapper.insert(userInfo);
             System.out.println("添加数据条数:" +count +", 数据ID:" + userInfo.getId());
    }

运行结果:

 1.2删(Delete)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值