mybatis添加数据返回主键

MyBatis简介

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通的Java对象)为数据库中的记录。

添加数据返回对象

1、定义实体类

mybatis添加数据返回主键

我们需要定义一个实体类,用于映射数据库中的表结构,我们有一个用户表(user),包含以下字段:id、name、age、email,我们可以定义一个User类来表示这个表:

public class User {
    private int id;
    private String name;
    private int age;
    private String email;
    // getter和setter方法省略
}

2、创建映射文件

接下来,我们需要创建一个映射文件(UserMapper.xml),用于定义SQL语句和映射规则,在映射文件中,我们可以使用<resultMap>标签来指定如何将查询结果映射到实体类。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="UserResultMap" type="com.example.entity.User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
        <result property="email" column="email"/>
    </resultMap>
</mapper>

3、创建接口

mybatis添加数据返回主键

我们需要创建一个接口(UserMapper.java),用于定义与数据库交互的方法,在这个接口中,我们需要继承org.apache.ibatis.annotations.Mapper注解,并指定映射文件的名称:

package com.example.mapper;
import com.example.entity.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Result;
import java.util.List;
public interface UserMapper {
    @Insert("INSERT INTO user (name, age, email) VALUES ({name}, {age}, {email})")
    int insert(User user);
    @Select("<script>" +
            "SELECT * FROM user WHERE id = {id}" +
            "</script>")
    @Results(id = "UserResultMap", value = {"id", "name", "age", "email"})
    User getById(int id);
}

4、在Service中使用Mapper

在Service层中,我们可以通过@Autowired注解来注入UserMapper接口,并调用其方法来操作数据库:

package com.example.service;
import com.example.entity.User;
import com.example.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public int addUser(User user) {
        return userMapper.insert(user);
    }
}

相关问题与解答

1、如何使用MyBatis批量插入数据?

mybatis添加数据返回主键

答:可以在映射文件中使用<foreach>标签来实现批量插入。

<insert id="batchInsert" parameterType="java.util.List">
    INSERT INTO user (name, age, email) VALUES ({name}, {age}, {email})
</insert>

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/131525.html

(0)
K-seoK-seoSEO优化员
上一篇 2023年12月15日 22:06
下一篇 2023年12月15日 22:08

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入