如何使用Mybatis将JavaBean包含列表保存到Sql?
众所周知,当使用Hibernate时,它可以为我们创建sql表。即使javabean有一个列表,hibernate也会为我们创建一个外部表 然而,当我使用myBatis时,我发现我必须在前面自己创建表,这非常不方便。然后我可以在表中插入值。更麻烦的是,我不确定的是,当我有一个带有列表的JavaBean时,我想将此文档保存到mysql 例如,我的java bean:如何使用Mybatis将JavaBean包含列表保存到Sql?,java,mysql,mybatis,spring-mybatis,Java,Mysql,Mybatis,Spring Mybatis,众所周知,当使用Hibernate时,它可以为我们创建sql表。即使javabean有一个列表,hibernate也会为我们创建一个外部表 然而,当我使用myBatis时,我发现我必须在前面自己创建表,这非常不方便。然后我可以在表中插入值。更麻烦的是,我不确定的是,当我有一个带有列表的JavaBean时,我想将此文档保存到mysql 例如,我的java bean: public class Person { public String id; public List<Str
public class Person {
public String id;
public List<String> interests;
}
公共类人物{
公共字符串id;
公众利益;
}
然后,Mysql应该有一个主表(person表)和一个外部表(interests表)
我的问题是:1。mybatis能为我创建这两张桌子吗?
2.mybatis能否为我自动转换javabean并向这两个表插入值。例如(当然这是不正确的)
插入Person.java到数据库中
服务
层上的正确插入。MyBatis可以通过@Many(select=“selectPersonInterests”)
服务
层上的正确插入。MyBatis可以通过@Many(select=“selectPersonInterests”)
<insert id="insertPerson">
INSERT INTO Person.java TO Database
</insert>
@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 (#{...}, ...);";
}
}