MyBatis注解,添加中间表使用InsertProvider去xml文件

MyBatis注解,添加中间表使用InsertProvider去xml文件,第1张

在对应的.xml中添加insert标签,换掉中间的insert语句insertintouser(userName,userAge,userAddress)values(#{userName},#{userAge},#{userAddress})

有外键的情况应该先添加主表数据,再添加副表数据。

如:有以下两张表

班级表:

CLASSID NAME

1 一班

2 二班

学生表:

SID NAMECLASSID

1 张三 1

2 李四 1

3 王五 2

其中学生表中的CLASSID是班级表CLASSID的外键。

现在要求在学生表中添加一条SID=4,NAME=赵六,CLASSID=3的数据,那么只能先在班级表中加入一条新数据。

1

insert into 班级表 values (3,'三班')

然后再在学生表中添加:

1

insert into 学生表 values (4,'赵六',3)

首先要实现mybatis的Interceptor接口,

实现它的三个方法

Object intercept(Invocation invocation) throws Throwable

Object plugin(Object target)

void setProperties(Properties properties)

plugin方法是拦截器用于封装目标对象的,通过该方法我们可以返回目标对象本身,也可以返回一个它的代理。当返回的是代理的时候我们可以对其中的方法进行拦截来调用intercept方法,当然也可以调用其他方法,这点将在后文讲解。

setProperties方法是用于在Mybatis配置文件中指定一些属性的。

plugin方法中我们可以决定是否要进行拦截进而决定要返回一个什么样的目标对象。而intercept方法就是要进行拦截的时候要执行的方法。

下面例子本来相用于记录日志到数据库,但是由于mybatis底层无法注入spring的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11939367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存