分類  >  WEB開發 >

關於SSH HibernateTemplate的值為空的有關問題

tags:Communication,public,springframework    時間:2013-12-02 11:21:44
關於SSH HibernateTemplate的值為空的問題
資料庫是mysql。pojo類為:
package com.dream_jn.pojo;

import java.sql.Timestamp;

/**
 * Communication entity. @author MyEclipse Persistence Tools
 */

public class Communication implements java.io.Serializable {

// Fields

private Integer communicationId;
private Integer formId;
private Integer toId;
private String message;
private Timestamp date;
private String state;

// Constructors

/** default constructor */
public Communication() {
}

/** full constructor */
public Communication(Integer formId, Integer toId, String message,
Timestamp date, String state) {
this.formId = formId;
this.toId = toId;
this.message = message;
this.date = date;
this.state = state;
}

// Property accessors

public Integer getCommunicationId() {
return this.communicationId;
}

public void setCommunicationId(Integer communicationId) {
this.communicationId = communicationId;
}

public Integer getFormId() {
return this.formId;
}

public void setFormId(Integer formId) {
this.formId = formId;
}

public Integer getToId() {
return this.toId;
}

public void setToId(Integer toId) {
this.toId = toId;
}

public String getMessage() {
return this.message;
}

public void setMessage(String message) {
this.message = message;
}

public Timestamp getDate() {
return this.date;
}

public void setDate(Timestamp date) {
this.date = date;
}

public String getState() {
return this.state;
}

public void setState(String state) {
this.state = state;
}

}


dao層:package com.dream_jn.dao;

import java.sql.Timestamp;
import java.util.List;
import org.hibernate.LockMode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.dream_jn.pojo.Communication;
public class CommunicationDAO {
private static final Logger log = LoggerFactory
.getLogger(CommunicationDAO.class);
// property constants
public static final String FORM_ID = "formId";
public static final String TO_ID = "toId";
public static final String MESSAGE = "message";
public static final String STATE = "state";
 
private HibernateTemplate temp;

public HibernateTemplate getTemp() {
return temp;
}

public void setTemp(HibernateTemplate temp) {
// System.out.println("EmployeeinfoDAO.setTemp()"+temp);

this.temp = temp;
}
protected void initDao() {
// do nothing
}

public void save(Communication transientInstance) {
log.debug("saving Communication instance");
try {
temp.save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}

public void delete(Communication persistentInstance) {
log.debug("deleting Communication instance");
try {
temp.delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}

public Communication findById(java.lang.Integer id) {
log.debug("getting Communication instance with id: " + id);
System.out.println("3");
try {
 
Communication instance = (Communication) temp
.get("com.dream_jn.pojo.Communication", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}

public List findByExample(Communication instance) {
log.debug("finding Communication instance by example");
try {
List results = temp.findByExample(instance);
log.debug("find by example successful, result size: "
+ results.size());
return results;
} catch (RuntimeException re) {
log.error("find by example failed", re);

throw re;

}
}

public List findByProperty(String propertyName, Object value) {
log.debug("finding Communication instance with property: "
+ propertyName + ", value: " + value);
try {
String queryString = "from Communication as model where model."
+ propertyName + "= ?";
return temp.find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}

public List findByFormId(Object formId) {
return findByProperty(FORM_ID, formId);
}

public List findByToId(Object toId) {
return findByProperty(TO_ID, toId);
}

public List findByMessage(Object message) {
return findByProperty(MESSAGE, message);
}


public static Logger getLog() {
return log;
}

public static String getFormId() {
return FORM_ID;
}

public static String getToId() {
return TO_ID;
}

public static String getMessage() {
return MESSAGE;
}
public static String getState() {
return STATE;
}

public List findByState(Object state) {
return findByProperty(STATE, state);
}

public List findAll() {
log.debug("finding all Communication instances");
try {
String queryString = "from Communication";
return temp.find(queryString);
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}

public Communication merge(Communication detachedInstance) {
log.debug("merging Communication instance");
try {
Communication result = (Communication) temp
.merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}

public void attachDirty(Communication instance) {
log.debug("attaching dirty Communication instance");
try {
temp.saveOrUpdate(instance);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}

public void attachClean(Communication instance) {
log.debug("attaching clean Communication instance");
try {
temp.lock(instance, LockMode.NONE);
log.debug("attach successful");
} catch (RuntimeException re) {
log.error("attach failed", re);
throw re;
}
}

public static CommunicationDAO getFromApplicationContext(
ApplicationContext ctx) {
return (CommunicationDAO) ctx.getBean("CommunicationDAO");
}
}

以上三個都是在配置Spring的時候自動生成的。
applicationContext.xml配置如下:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans     
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd     
           http://www.springframework.org/schema/context     
           http://www.springframework.org/schema/context/spring-context-3.0.xsd     
           http://www.springframework.org/schema/aop     
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd     
           ">









<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 






org.hibernate.dialect.MySQLDialect

update




com/dream_jn/pojo/Communication.hbm.xml



<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">










<bean id="CommunicationDAO"
class="com.dream_jn.dao.CommunicationDAO">








之後想用一個TestAction.class類來測試:

package com.dream_jn.action;

import com.dream_jn.pojo.Communication;
import com.dream_jn.dao.CommunicationDAO;

public class TestAction {
public static void main(String[] args)throws Exception{

CommunicationDAO Comdao=null;
@SuppressWarnings("null")
Communication com = Comdao.findById(1);
   System.out.println(com.getFormId());
}
}

但是一直是空指針的錯誤:Exception in thread "main" java.lang.NullPointerException
at com.dream_jn.action.TestAction.main(TestAction.java:14

另外調試的時候也是顯示hibernateTemplate也是null求大神給點意見:


------解決方案--------------------
extends HibernateDaoSupport

推薦閱讀文章

Bookmark the permalink ,來源:互聯網