`

struts与spring整合时使用与不使用hibernate时的applicationContext.xml文件配置问题

 
阅读更多
当不使用hibernate操作数据库时,DAO直接和dataSource打交道,配置如下:
	<bean id="userDAO" class="com.demo.spring.dao.UserDAO">
		<property name="dataSource">
			<ref local="dataSource" />
		</property>
	</bean>

对应的UserDAO代码如下:
package com.demo.spring.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

public class UserDAO {
	private DataSource dataSource;

	public DataSource getDataSource() {
		return dataSource;
	}

	public void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
	}

	@SuppressWarnings("unchecked")
	public boolean isValid(String username, String password) {
		List userList = new ArrayList();
		JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
		userList = jdbcTemplate.query("SELECT * FROM user WHERE username='"
				+ username + "' and password='" + password + "'",
				new RowMapper() {
					public Object mapRow(ResultSet rs, int rowNum)
							throws SQLException {
						User user = new User();
						user.setId(rs.getString("ID"));
						user.setUsername(rs.getString("username"));
						user.setPassword(rs.getString("password"));
						user.setEmail(rs.getString("email"));
						return user;
					}
				});
		if (userList.size() > 0) {
			return true;
		} else {
			return false;
		}
	}

	public boolean isExist(String username) {
		JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
		int count = jdbcTemplate.queryForInt("SELECT count(*) FROM user WHERE username='" + username
				+ "'");		
		if (count > 0) {
			return true;
		} else {
			return false;
		}
	}

	public void insertUser(User user) {
		String username = user.getUsername();
		String password = user.getPassword();
		String email = user.getEmail();
		JdbcTemplate jt = new JdbcTemplate(getDataSource());
		jt.update("insert into user(username,password,email) values ('"
				+ username + "','" + password + "','" + email + "');");
	}
}



当使用hibernate进行数据库操作时,DAO是和sessionFactory打交道,而sessionFactory是和dataSource进行联系的,配置代码如下:
	<!-- 配置hibernate -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref local="dataSource" />
		</property>
		<property name="mappingResources">
			<list>
				<value>com/ssh/beans/User.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
		    </prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
	</bean>

	<bean id="userDAO" class="com.ssh.dao.impl.UserDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

这是的UserDAO的代码如下:
package com.ssh.dao.impl;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.ssh.beans.User;
import com.ssh.dao.interfaces.IUserDAO;


@SuppressWarnings("unchecked")
public class UserDAO extends HibernateDaoSupport implements IUserDAO{

	public void deleteUser(String userid) {
		Object p = getHibernateTemplate().load(User.class, new Integer(userid));
		getHibernateTemplate().delete(p);
	}

	public User getUser(String userid) {
		return (User) getHibernateTemplate().get(User.class,
				new Integer(userid));
	}


	public List getUsers() {
		return getHibernateTemplate().find("from User");
	}

	public void insertUser(User user) {
		getHibernateTemplate().saveOrUpdate(user);
	}

	public boolean isExist(final String username) {
		List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
			throws HibernateException {
				List result = session.createCriteria(User.class).add(
						Restrictions.eq("username", username)).list();
				return result;
			}
		});
		if (list.size() > 0) {
			return true;
		} else {
			return false;
		}
	}

	public boolean isValid(final  String username, final String password) {
		List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
			throws HibernateException {
				List result = session.createCriteria(User.class).add(
						Restrictions.eq("username", username)).add(
								Restrictions.eq("password", password)).list();
				return result;
			}
		});
		if (list.size() > 0) {
			return true;
		} else {
			return false;
		}
	}
}
分享到:
评论

相关推荐

    SSH框架applicationContext.xml头部文件

    在给出的部分内容中,可以看到`applicationContext.xml`文件的头部结构,它使用了XML语言来定义Spring容器的配置信息。该文件的头部主要包括以下几点: - **XML声明**:`&lt;?xml version='1.0' encoding='UTF-8'?&gt;`。...

    spring4的所有jar包+applicationContext.xml+web.xml

    6. **整合其他技术**:Spring4可以与各种数据库(如JDBC、Hibernate、MyBatis)、其他Java EE组件(如JMS、EJB)以及各种Web框架(如Struts、JSF)无缝集成,提供了一站式的解决方案。 了解并掌握以上知识点,将有...

    applicationContext.xml详解

    而`applicationContext.xml`是Spring框架中用来配置各种bean以及它们之间的依赖关系的核心配置文件。 #### 1. XML配置文件结构 让我们从`applicationContext.xml`的头部开始解析: ```xml &lt;?xml version="1.0" ...

    JavaEE spring和Hibernate整合(没有hibernate.cfg.xml)

    在这个场景中,我们将探讨如何在不使用`hibernate.cfg.xml`配置文件的情况下整合Spring和Hibernate。 通常,Hibernate通过`hibernate.cfg.xml`文件来配置数据库连接、实体类映射等信息。但在Spring中,我们可以利用...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    Spring的XML配置文件(如applicationContext.xml)用于声明bean及其依赖。通过@Autowired注解或XML配置,Spring可以自动装配bean,实现依赖注入。同时,Spring还提供了AOP(面向切面编程)支持,用于添加如日志、...

    Struts2.1、Spring3.0、Hibernate3.3整合与S2SH的XML文件拆分

    综上所述,Struts2.1、Spring3.0和Hibernate3.3的整合涉及数据库连接、MVC组件配置、依赖注入以及XML配置文件的拆分。这种整合允许开发人员利用Spring的强大功能管理依赖,使用Struts2处理请求和展现,以及借助...

    Struts+Spring+Hibernate整合教程.pdf

    3. 配置Struts:在struts-config.xml中配置Action和ActionForward,同时使用Spring的Action代理实现DI。 4. 配置Hibernate:设置hibernate.cfg.xml文件,定义数据库连接等信息。 5. 实现业务逻辑:编写Action、...

    Spring+Struts+Hibernate比较详细的整合配置方案

    【Spring+Struts+Hibernate整合配置方案】 Spring、Struts和Hibernate是Java Web开发中三大核心框架,它们各自负责不同的职责:Spring作为依赖注入容器和面向切面编程(AOP)框架,提供应用的结构和事务管理;Struts...

    struts+spring+hibernate实现图书修改和删除

    SSH整合的关键在于配置文件,包括Struts 2的struts.xml、Spring的applicationContext.xml和Hibernate的hibernate.cfg.xml。这些文件定义了各组件之间的关系和行为。例如,struts.xml中配置Action类及其结果视图,...

    struts2 spring hibernate整合的简单登录代码

    在“struts2springhibernate”这个项目中,我们首先会看到Struts2的配置文件(如struts.xml),它是整个应用的控制器配置,定义了Action类与URL的映射以及结果的跳转。Struts2通过拦截器来处理请求,并利用...

    图文教程MyEclipse配置struts+hibernate+spring.doc

    图文教程MyEclipse配置struts...本文档最后部分是一个实战演习,讲述如何使用struts、hibernate和spring三个框架来实现一个完整的Web应用程序,包括建立数据库连接、生成FreeMarker模板、配置struts-config.xml文件等。

    struts+spring+hibernate整合

    配置`struts-config.xml`以加载Spring的`ContextLoaderPlugIn`,并指定Spring的配置文件`applicationContext.xml`。 5. **修改Action配置**:将Action类型更改为`DelegatingActionProxy`,以使Struts委托给Spring来...

    struts2-spring4-hibernate4_xml配置的框架

    Struts2-Spring4-Hibernate4 XML配置的框架是一个经典的Java Web开发架构,它整合了三个主流的开源框架:Struts2、Spring4和Hibernate4。这个框架的配置主要通过XML文件来完成,同时也可以结合注解的方式进行更加...

    Struts2-Spring-Hibernate的整合.doc

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC模式中的视图和控制器,Spring提供依赖注入(DI)和面向切面编程(AOP),而Hibernate则负责对象关系映射...

    struts2-hibernate3-spring整合需要的全部jar包

    在整合Struts2、Hibernate3和Spring时,确保所有jar包的兼容性和正确性至关重要,因为不匹配的版本可能导致各种运行时问题。"struts2-hibernate3-spring整合需要的全部jar包"正是为了解决这个问题,它包含了所有必要...

    Struts2+Hibernate4+Spring3整合(注解和XML方式都有)

    Struts2的配置文件(struts.xml)定义Action和结果,Hibernate的配置文件(hibernate.cfg.xml)设置数据库连接,Spring的配置文件(applicationContext.xml)管理bean。这些配置文件需要正确地互相引用,以确保框架...

    struts2、hibernate和spring框架整合所需的jar以及配置文档

    整合SSH框架时,你还需要配置web.xml文件,将Struts2的Front Controller配置为Servlet容器的DispatcherServlet。同时,需要在`struts.xml`、`hibernate.cfg.xml`和`applicationContext.xml`中进行相应的设置,例如...

    Spring+struts+hibernate的整合.

    不过,这里提到的是不生成 Hibernate 自身的配置文件,而是将其配置工作交给 Spring。这意味着你需要在 `applicationContext.xml` 中配置 Hibernate SessionFactory,并让 Spring 管理事务。 **4. 在 Struts 配置...

    struts2整合spring、hibernate的jar包

    在整合Struts2时,我们需要配置Spring的`spring-beans.jar`、`spring-context.jar`等,通过Spring的ApplicationContext加载bean,并将这些bean注入到Struts2的Action中,以实现业务逻辑的解耦。同时,Spring还提供了...

    struts+spring+hibernate整合配置笔记

    在整合配置中,我们需要配置Struts的核心配置文件`struts-config.xml`,定义Action和ActionForm,以及与之对应的视图页面。 **2. Spring框架** Spring是一个全方位的轻量级应用框架,提供DI、AOP、事务管理等功能。...

Global site tag (gtag.js) - Google Analytics