我写程式需要在线程要对数据库操作 当我执行 emailDao.executeSql 报 java.lang.NullPointerException的错误求高手帮忙解决tks。
public class SendMailThread extends Thread {
private boolean enab = true;
private int cnts = 0;
private long sleepTimes = 0L;
private int sendindex = 1;
private final Log log = LogFactory.getLog(getClass());
private EmailDao<Temail> emailDao;
public EmailDao<Temail> getEmailDao() {
return emailDao;
}
@Autowired
public void setEmailDao(EmailDao<Temail> emailDao) {
this.emailDao = emailDao;
}
//设定线程是否停止
public void setEnab(boolean enab) {
this.enab = enab;
}
public int getCnts(){
return this.cnts;
}
public void run() {
try {
Iterator iterator1 = emailDao.executeSql("SELECT b.qqnum FROM paipaihelper.tremail a join paipaihelper.tremailmx b on a.id=b.pid where b.enab='Y'").iterator();
while (iterator1.hasNext()) {
System.out.println(iterator1.next().toString());
}
} catch (InterruptedException e) {
log.error("ss", e);
}
}
}
Java 多线程 指针
------解决方案--------------------
你的异常是哪一行呢?
猜测emailDao自动装箱失败,相关配置贴出来看看?EmailDao类的源码
------解决方案--------------------
emailDao应该需要在spring配置事务控制,要不然不会自动初始化,肯定报空啦
------解决方案--------------------
public EmailDao<Temail> getEmailDao() {
return emailDao;
}
@Autowired
public void setEmailDao(EmailDao<Temail> emailDao) {
this.emailDao = emailDao;