代码如下:****************UserAction
package action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import service.UserService;
import entity.User;public class UserAction{
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
} private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String userLogin() throws Exception{
HttpServletRequest request = ServletActionContext.getRequest() ;
HttpSession session = request.getSession();
if(user != null){
int count = userService.userLogin(user.getName(),user.getPassword());
if(count == 1){
session.setAttribute("loginuser", user);
return "loginSuccess";
}
}
request.setAttribute("info", 0);
return "loginFailure";
}
}
****************UserService
package service;import dao.UserDao;public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public int userLogin(String name,String password) throws Exception{
try {
return userDao.userLogin(name, password);
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
}
}
}****************UserDaopackage dao;
import java.util.List;
import entity.User;public class UserDao extends BaseDao{
public int userLogin(String name,String password) throws Exception{
String hql = "from User u where u.name='"+name+"' and u.password='"+password+"'";
List users = getHibernateTemplate().find(hql);
if(users != null ){
return 1;
}
return 0;
}
}****************BaseDao
package dao;import java.io.Serializable;import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class BaseDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}
protected HibernateTemplate hibernateTemplate = null; public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public HibernateTemplate getHibernateTemplate() {
if ( hibernateTemplate == null){
System.out.println("HibernateTemplate的值为:" + hibernateTemplate);
}
return hibernateTemplate;
}
public void addObject(Object o) {
getHibernateTemplate().save(o);
} public void deleteObject(Object o) {
getHibernateTemplate().delete(o);
} public void updateObject(Object o) {
getHibernateTemplate().update(o);
} public Object findObjectById(Class clazz,Serializable id) {
return getHibernateTemplate().get(clazz,id);
}
}
**************applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>entity/Product.hbm.xml</value>
<value>entity/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- 显示Hibernate持久化操作所生成的SQL语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 向hibernateTemplate注入sessionFactory -->
<bean id = "hibernateTemplate" class = "org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref = "sessionFactory">
</property>
</bean> <bean id = "userAction" class = "action.UserAction">
<property name="userService" ref = "userService"></property>
</bean>
<bean id = "userService" class = "service.UserService">
<property name="userDao" ref = "userDao"></property>
</bean>
<bean id = "userDao" class = "dao.UserDao">
<property name="hibernateTemplate" ref = "hibernateTemplate"></property>
</bean>
</beans>为什么取得的hibernateTemplate是空值?
还有注入的属性总是报错,从Action---->Service就有错!那位大侠给解决一下!
麻烦你们了!
package action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import service.UserService;
import entity.User;public class UserAction{
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
} private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String userLogin() throws Exception{
HttpServletRequest request = ServletActionContext.getRequest() ;
HttpSession session = request.getSession();
if(user != null){
int count = userService.userLogin(user.getName(),user.getPassword());
if(count == 1){
session.setAttribute("loginuser", user);
return "loginSuccess";
}
}
request.setAttribute("info", 0);
return "loginFailure";
}
}
****************UserService
package service;import dao.UserDao;public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} public int userLogin(String name,String password) throws Exception{
try {
return userDao.userLogin(name, password);
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
}
}
}****************UserDaopackage dao;
import java.util.List;
import entity.User;public class UserDao extends BaseDao{
public int userLogin(String name,String password) throws Exception{
String hql = "from User u where u.name='"+name+"' and u.password='"+password+"'";
List users = getHibernateTemplate().find(hql);
if(users != null ){
return 1;
}
return 0;
}
}****************BaseDao
package dao;import java.io.Serializable;import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class BaseDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}
protected HibernateTemplate hibernateTemplate = null; public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public HibernateTemplate getHibernateTemplate() {
if ( hibernateTemplate == null){
System.out.println("HibernateTemplate的值为:" + hibernateTemplate);
}
return hibernateTemplate;
}
public void addObject(Object o) {
getHibernateTemplate().save(o);
} public void deleteObject(Object o) {
getHibernateTemplate().delete(o);
} public void updateObject(Object o) {
getHibernateTemplate().update(o);
} public Object findObjectById(Class clazz,Serializable id) {
return getHibernateTemplate().get(clazz,id);
}
}
**************applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>entity/Product.hbm.xml</value>
<value>entity/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- 显示Hibernate持久化操作所生成的SQL语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 将SQL脚本进行格式化后再输出 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 向hibernateTemplate注入sessionFactory -->
<bean id = "hibernateTemplate" class = "org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref = "sessionFactory">
</property>
</bean> <bean id = "userAction" class = "action.UserAction">
<property name="userService" ref = "userService"></property>
</bean>
<bean id = "userService" class = "service.UserService">
<property name="userDao" ref = "userDao"></property>
</bean>
<bean id = "userDao" class = "dao.UserDao">
<property name="hibernateTemplate" ref = "hibernateTemplate"></property>
</bean>
</beans>为什么取得的hibernateTemplate是空值?
还有注入的属性总是报错,从Action---->Service就有错!那位大侠给解决一下!
麻烦你们了!
public class BaseDao extends HibernateDaoSupport {
// SessionFactory 在HibernateDaoSupport 中有声明
// 在这里有不要再次声明了// HibernateTemplate 在HibernateDaoSupport 中也有声明
// 而且在注入SessionFactory 的时候会自动创建,当然你也
// 可以显示的注入HibernateTemplate// ....}**************applicationContext.xml<bean id = "userDao" class = "dao.UserDao">
<!-- 把hibernateTemplate 改成 sessionFactory就可以 -->
<property name="sessionFactory" ref = "sessionFactory" />
</bean><!-- 这个就不需要了 -->
<bean id = "hibernateTemplate" class = "org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref = "sessionFactory" />
</bean>
再回一遍这个...没看出来,不过我一般是这么用的------- BaseDAO:
public class BaseDao extends HibernateDaoSupport {
// SessionFactory 在HibernateDaoSupport 中有声明
// 在这里有不要再次声明了// HibernateTemplate 在HibernateDaoSupport 中也有声明
// 而且在注入SessionFactory 的时候会自动创建,当然你也
// 可以显示的注入HibernateTemplate// ....}**************applicationContext.xml<bean id = "userDao" class = "dao.UserDao">
<!-- 把hibernateTemplate 改成 sessionFactory就可以 -->
<property name="sessionFactory" ref = "sessionFactory" />
</bean><!-- 这个就不需要了 -->
<bean id = "hibernateTemplate" class = "org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref = "sessionFactory" />
</bean>
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>这里该用sessionFactory而不是hibernateTemplate。
[/code]<bean id = " baseDao" class = " BaseDao">
<property name="sessionFactory" ref = "sessionFactory" />
</bean>