最近在做一个自定义注解+aop实现一个修改子表时通过注解+aop的方式同步更新主表相关字段的值;通过自定注解将sql语句拼接好后不知道如何获取springboot中的数据库连接对象执行sql语句,请大神指教(不想通过最原始的获取配置文件的连接参数、获得连接。。。这种方式,是想用mybatis中的连接)
package com.aop.annotation;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class SynchroAop {
// @Pointcut("execution(* cn.gotham.spring_security_01.user.controller.*Controller.*(..))")
@Pointcut("@annotation(com.aop.annotation.SynchroMTable)")
public void pointCut() {
}
@Around(value="pointCut()&&@annotation(synchroMTable)")
public Object recordSystemLog(ProceedingJoinPoint joinPoint, SynchroMTable synchroMTable ) throws Throwable {
Object result = joinPoint.proceed(joinPoint.getArgs());
String[] sqls = synchroMTable.sql();
for (String sql : sqls) {
//这里需要获取数据库连接对象执行sql
}
//System.out.println("命中拦截器============================"+value);
return result;
}
}
没办法,最后依旧通过百度的办法找到一个笨办法:
其实图中的查询sql只是测试时用的,后边真实的sql语句是update及delete操作。
如果大神有高端的办法麻烦再指正一下,好让我把帖结了;