DWR+Spring+Hibernate入门示例

 Tomcat为6.0,开发环境为Eclipse,数据库为sql server。由于Hibernate连接sqlserver 数据库时,用普通的数据库驱动容易出错。所以我们用的是jtds驱动。

这个例子是实现了,用户输入用户名,并点击按钮。从数据库中判断,此用户名是否存在。

1.首先将Hibernate、Spring和DWR所需的jar包全部倒入文件。

2.建立Dynamic web工程,名称为DWRTestDemo。

3.在src下新建三个包,分别为com.DWRTestDemo.dao(用于放model类,hbm映射文件和dao文件)、com.DWRTestDemo.service包(用于放调用dao文件的文件)、com.DWRTestDemo.control包(用于放调用service文件的文件,它中间的类是暴露给DWR调用的)。

4.com.DWRTestDemo.dao下的文件有:

User.java

package com.DWRTestDemo.dao;

public class User {

	private String username;
	private String password;
	
	public void setUsername(String username)
	{
		this.username=username;
	}
	public void setPassword(String password)
	{
		this.password=password;
	}
	public String getUsername()
	{
		return this.username;
	}
	public String getPassword()
	{
		return this.password;
	}
}

User.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.DWRTestDemo.dao">
 <class name="User" table="tb_user">
        <id name="username" column="username">
            <generator class="assigned"/>
        </id>
        <property name="password" column="password"/>
 </class>
</hibernate-mapping>


UserDAO.java

package com.DWRTestDemo.dao;
import java.util.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class UserDAO extends HibernateDaoSupport{

	public List<User> findByName(String username)
	{
		return getHibernateTemplate().find("from User where username='"+username+"'");
	}
}

com.DWRTestDemo.service中的类有:

DWRService.java:

package com.DWRTestDemo.service;
import com.DWRTestDemo.dao.*;
import java.util.*;
public class DWRService {

	private UserDAO userDAO;
	
	public void setUserDAO(UserDAO userDAO)
	{
		this.userDAO=userDAO;
	}
	public UserDAO getUserDAO()
	{
		return this.userDAO;
	}
	public boolean checkExists(String username)
	{
		List<User> list=userDAO.findByName(username);
		if(list!=null&&list.size()>0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}

com.DWRTestDemo.control下的类有:

DWRTextControl.java

package com.DWRTestDemo.control;
import javax.servlet.http.HttpServletRequest;
import com.DWRTestDemo.service.*;
public class DWRTextControl {

	private DWRService dwrService;
	public void setDwrService(DWRService dwrService)
	{
		this.dwrService=dwrService;
	}
	public DWRService getDwrService()
	{
		return this.dwrService;
	}
	public boolean checkExists(String username,HttpServletRequest request)
	{
		return dwrService.checkExists(username);
	}
}


 

5.写配置文件:

web.xml的配置为(需要配listener--spring要求的,servlet----DWR要求的):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>DWRTestDemo</display-name>
  <servlet>
  	<servlet-name>dwr-invoker</servlet-name>
  	<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  	<init-param>
  		<param-name>debug</param-name>
  		<param-value>true</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>dwr-invoker</servlet-name>
  	<url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

applicationContext.xml的配置(配置Hibernate的dataSource,sessionFactory和一些bean)为:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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" destroy-method="close">
  	<property name="driverClassName">
  		<value>net.sourceforge.jtds.jdbc.Driver</value>
  	</property>
  	<property name="url">
  		<value>jdbc:jtds:sqlserver://localhost:1433;databaseName=db_test;</value>
  	</property>
  	<property name="username">
  		<value>sa</value>
  	</property>
	<property name="password">
		<value></value>
	</property>
  </bean>
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="dataSource">
		<ref local="dataSource"/>
	</property>
	<property name="mappingResources">
		<list>
			<value>com/DWRTestDemo/dao/User.hbm.xml</value>
		</list>
	</property>
	<property name="hibernateProperties">
		<props>
			<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
			<prop key="hibernate.show_sql">true</prop>
		</props>
	</property>
  </bean>
  <bean id="UserDAO" class="com.DWRTestDemo.dao.UserDAO">
  	<property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="DWRService" class="com.DWRTestDemo.service.DWRService">
  	<property name="userDAO" ref="UserDAO"/>
  </bean>
  <bean id="DWRTextControl" class="com.DWRTestDemo.control.DWRTextControl">
  	<property name="dwrService" ref="DWRService"/>
  </bean>
</beans>

dwr.xml的配置为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="spring" javascript="DWRTextControl">
      <param name="beanName" value="DWRTextControl"/>
    </create>
   </allow>
</dwr>


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值