论坛首页 Web前端技术论坛

Maven,Spring,Hibernate,Flex,PureMVC整合(三)

浏览 2635 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-29  

下面我简单穿插一个登陆小示例:

我简单说一下流程,用户通过页面输入用户名、密码,后台通过验证后,自动到数据库查询所有用户信息生成列表显示到界面上。

建立如图所示包结构

在model包里新建User.java代码如下:

package com.zhjj.zhangben.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "USERS")
public class User {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "ID")
	private Integer id; 				// id
	@Column(name = "USERNAME")
	private String username; 			// 用户名
	@Column(name = "PASSWORD")
	private String password; 			// 密码
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}	
}

 

 

通过这个类可以自动生成Users表,然后新建UserDAOImpl.java类,新建方法

package com.zhjj.zhangben.dao.impl;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.zhjj.zhangben.dao.UserDAO;
import com.zhjj.zhangben.model.User;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
 
 public Long findUserNum(String name,String password){
  String hql = "select count(*) from User where username = ? and password = ?";
  Query queryObject = getSession().createQuery(hql);
  queryObject.setParameter(0, name);
  queryObject.setParameter(1, password);
  Long num = (Long)queryObject.uniqueResult();
  
  return num;
 }
 
 @SuppressWarnings("unchecked")
 public List<User> findUsersList(){
  String hql = "from User order by id asc";
  Query queryObject = getSession().createQuery(hql);
  List<User> userList = queryObject.list();
  return userList;
 }
}

这里我简单的根据用户名、密码搜索数据库记录数,如果为0则表示用户不存在,否则表示用户名、密码正确,登陆成功。

 

方法findUsersList是查询所有用户并返回一个List。

 

接口类我就不贴代码了,若需要请参考最后的源码。

 

DAO在此算是OK了,然后新建UserServiceImpl.java

package com.zhjj.zhangben.service.impl;

import java.util.List;

import org.springframework.flex.remoting.RemotingDestination;

import com.zhjj.zhangben.dao.UserDAO;
import com.zhjj.zhangben.model.User;
import com.zhjj.zhangben.service.UserService;

@RemotingDestination
public class UserServiceImpl implements UserService {
	private UserDAO userDAO;

	public UserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}
	
	public boolean userLogin(String name,String password){
		if(userDAO.findUserNum(name,password) == 0){
			return false;
		}
		return true;
	}
	
	public List<User> getUsersList(){
		List<User> userList = userDAO.findUsersList();
		return userList;
	}
}

 

 

很简单吧。。。。。。说明一下getUsersList方法可以直接返回一个List,flex端能够解析

 

这里还有一点很重要,千万不要漏掉@RemotingDestination注释,这里的作用是代替flex远程对象,配置之后我们就可以在Flex直接使用这个Service里的方法了。

 

之前我们暴露BlazeDS remoting需要如下配置

<!– Expose the productService bean for BlazeDS remoting –>
<bean id=”product” class=”org.springframework.flex.messaging.remoting.FlexRemotingServiceExporter”>
<property name=”messageBroker” ref=”mySpringManagedMessageBroker”/>
<property name=”service” ref=”productService”/>
</bean>

或者

<flex:remoting-destination ref=“productService” />

现在我们只需 @RemotingDestination  annotation 标签 来代替,很方便吧。。。。。。

  • 描述: Java包结构
  • 大小: 14.3 KB
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics