TempleteJDBC和Mybatis混合使用注意事项

今天,师傅让我将以前项目中的一个功能接口拿到现在正在做的项目中,之前的项目用的是 Spring+SpringMVC+TempleteJDBC,现在做的项目用的是 Spring Boot+Mybatis,如果将这个功能代码从TempleteJDBC 改为Mybatis 会比较麻烦,然后就决定不改,就混合使用,果然出现了问题。

首先出现了 dataDAO 为 null 的问题,注解什么的都没有少,也注入了,就是一直为 null 找了好长时间的原因,是因为调用这个dataDAO 的 dataService 都有问题 ,这个 dataService 就没有注入成功,造成 dataDAO 为 null ,而且要是想将对象交给Spring工厂管理,你不能直接将这个对象 new 出来,否则运行时候可能会报空指针异常。

这个 dataService 为什么没有注入成功呢?就是因为我是将它 new 出来的,尽管上面有 @autowired 注解,没有用,然后我去掉了后面的 new ,发现还是不对,仔细一看,上面有个 static ,搜索了一下发现Static 静态变量 不能直接使用 @autowired 注解,然后我把 static 去掉之后才变正常。

此时,我满怀信心觉得应该没问题了,没想到还是不行,这次出现的问题是找不到 dataDAO 中的方法,然后我觉得这个地方可能就是和 Mybatis 冲突的地方了,因为 Mybatis 中 DAO层的实现类是用 xml 文件实现的,而 TempleteJDBC 中是用 DAOImpl 类实现的,配置文件.yml 中指定了 xml 文件的路径,造成 TempleteJDBC 中的 dataDAO 找不到它自己的实现类 dataDAOImpl 。

最后的解决方式是不要这个 dataDAO 了 直接在 service 中注入 JdbcTemplate ,将之前在dataDAO 中的操作直接在 service 中实现,至此问题算是解决完毕,接下来就要将 Oracle 中的存储过程转成 MySQL中的 SQL 语句了。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值