日期:2014-05-17  浏览次数:20907 次

java线程执行sql报指针null的错误
      我写程式需要在线程要对数据库操作 当我执行 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;