java多线程里能使用mybatis或者jpa插入吗?
//下面是按照老大Richard_Yi的法子做出来的,截图如下
/////////////下面是旧的
//最新更新,截图如上,项目结构能够看见,说下,我那个brandRepository在别的包可以插入的,比如controller里的方法,就是在这个包下不行,不是一直都插入不进去的
public class ThirdThread implements Runnable {
private Brand brand;
private BrandRepository brandRepos;
@Autowired
BrandRepository brandRepository;
Logger logger = LoggerFactory.getLogger(getClass());
public ThirdThread() {
this.brandRepos=brandRepository;
this.brand = new Brand(); }
@Override
public void run() {
logger.info("third开始时间"+System.currentTimeMillis());
for (int i = 1; i < 11; i++) {
brand.setId(i);
brand.setName("wygyf");
brand.setFirstname("gheu");
brand.setCid(1);
brandRepos.save(brand);
}
//上面是线程类的代码,然后到调用的地方
Thread thread = new Thread(new ThirdThread());
thread.start();
代码如上,现在的问题是,每次还是报空指针,就是save那,我问人说是因为异步线程,来不及注入所以一直为空,我在构造函数里将bean注入了,但jpa那怎么操作我不知道。
求高人解惑,谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
题主的目的:一个线程插入大批量的数据,和多个线程同时插入大批量的数据,在时间上是否有差距,所以在线程里用正常的orm方式操作数据库;
他想用Spring-Data-Jpa这种方式去插入数据,简化操作。
看着像SpringBoot应用。举个例子
BrandRepository
main方法
如果是Spring的话同理,用个java configuration类配置或者扫描相关的Bean,然后main方法里用
new ***ApplicationContext()
启动容器,如上操作即可。都可以用MyBatis或者jpa写入数据库。看到你的代码,我猜测是两个原因,一是根本没有这个接口,而是@AutoWired的问题。
首先着重讲一下@AutoWired的问题,@AutoWired我觉得它的使用场景比较少,多用于只有一个实现类的接口,我曾经也遇到@AutoWired空指针的问题,我自己是改用@Resource的注解。
另外你通过注入,然后再通过构造器赋值,这一步我没看懂原因,直接@Resource或者用@AutoWired以及@Qualifier组合注入就可以了。