gpt4 book ai didi

java - 如何使用 Mybatis 将 JavaBean 包含列表保存到 Sql?

转载 作者:行者123 更新时间:2023-11-30 22:00:13 28 4
gpt4 key购买 nike

众所周知,在使用Hibernate时,它可以为我们创建sql表。即使一个 Java Bean 有一个列表,hibernate 也会为我们创建一个外部表。

但是我在使用myBatis的时候,发现必须自己提前建表,很不方便。然后我可以向表中插入值。比较不方便和不确定的是,当我有一个带列表的JavaBean时,我想把这个文件保存到mysql中。

例如,我的java bean:

public class Person {
public String id;
public List<String> interests;
}

那么,Mysql应该有一个主表(person表)和一个外表(interests表)。

我的问题是:1.mybatis可以帮我创建这两张表吗?2. mybatis 能否自动为我转换 javabean 并将值插入到两个表中。例如(当然这是不正确的)

<insert id="insertPerson">
INSERT INTO Person.java TO Database
</insert>

最佳答案

  1. 不,你不想要它。不要像使用 Spring Data 或 Hibernate 一样使用 MyBatis。
  2. 关于自动转换。您应该为所有相关类型(在我们的情况下为 PersonInterest)提供映射。在您的 Service 层上处理正确的插入。 MyBatis 可以通过 @Many(select = "selectPersonInterests")

    提供选择
    @Mapper
    public interface PersonMapper {

    @InsertProvider(type = PersonProvider.class, method = "insertPerson")
    void insertPerson(@Param("person") Person person);

    @InsertProvider(type = PersonProvider.class, method = "insertPersonInterest")
    void insertInterestItem(@Param("interest") Interest item);
    }

    @Component
    public class PersonProvider {
    public String insertPersonInterest() {
    return "insert into person_interest (...) " +
    "values (#{...}, ...);";
    }
    public String insertPerson() {
    return "insert into person (...) " +
    "values (#{...}, ...);";
    }
    }

关于java - 如何使用 Mybatis 将 JavaBean 包含列表保存到 Sql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629911/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com