Struts+Spring+Hibernate整合的例子(三)

接着来!

我们以把三个框架都导进来了,接上来我把JAR包给出来,如下图:

 

大家把多余的jar文件删除(在WEB-INF/lib下)。然后我们开始创建实体类和映射文件,我们找到“DB Browser”选项卡,如下

 

在我们前面建的数据库连接"mysql"上右键--Open connection...开始连接数据库。如下图:

 

点击那个小三角找到我们要找的库“test”,然后在库中找到我们要创建映射的表,我这里是user表,表中字段有三个,id intege他是主键,username varchar(45) 用户名,password varchar(45)密码。

然后我们在要创建映射的表上点右键,选择“Hibernate Reverse Engineering...”弹出对话框,如下图:

按照上图配置:先选择映射文件要存放的路径(点java package 后面的那个“Browser”按钮,选择MySSH项目下的一个包,我建的包叫:com.zgh.hibernate.vo,大家也可在上图中看一下我的目录结构),然后按图钩选即可,说明上面图片中有。最后点“Next”进入下一步,如图:

在上图中选择主键生成方式,按图选择即可。点“Finish”完成。

生成两个文件在com.zgh.hibernate.vo中,如下图(包括我项目的路径情况,大家可参考):

这样实体类和其映射文件就创建完成了。我们要修改一个User.hbm.xml文件,把catalog="test"删除,否则Hibernate生成的SQL会出错。下面给出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 " >
<!--  
    Mapping file autogenerated by MyEclipse 
-  Hibernate Tools
-->
< hibernate - mapping >
    
< class  name = " com.zgh.hibernate.vo.User "  table = " user " >
        
< id name = " id "  type = " java.lang.Integer " >
            
< column name = " id "   />
            
< generator  class = " increment "   />
        
</ id >
        
< property name = " username "  type = " java.lang.String " >
            
< column name = " username "  length = " 45 "  not - null = " true "   />
        
</ property >
        
< property name = " password "  type = " java.lang.String " >
            
< column name = " password "  length = " 45 "  not - null = " true "   />
        
</ property >
    
</ class >
</ hibernate - mapping >

User.java代码:

 

/**
 * 
@author zhu国辉
 
*/

package  com.zgh.hibernate.vo;



/**
 * User generated by MyEclipse - Hibernate Tools
 
*/

public   class  User   implements  java.io.Serializable  {


    
// Fields    

     
private Integer id;
     
private String username;
     
private String password;


    
// Constructors

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


    
    
/** full constructor */
    
public User(String username, String password) {
        
this.username = username;
        
this.password = password;
    }


   
    
// Property accessors

    
public Integer getId() {
        
return this.id;
    }

    
    
public void setId(Integer id) {
        
this.id = id;
    }


    
public String getUsername() {
        
return this.username;
    }

    
    
public void setUsername(String username) {
        
this.username = username;
    }


    
public String getPassword() {
        
return this.password;
    }

    
    
public void setPassword(String password) {
        
this.password = password;
    }

   








}

接下来我们创建Dao层,我们在com.zgh.spring.dao中创建一个接口和一类实现类:

IUserLoginDao.java代码:

 

/**
 * 
@author zhu国辉
 
*/

package  com.zgh.spring.dao;

import  java.util.List;

public   interface  IUserLoginDao  {
    List getUser(String username,String password);

}

UserLoginDao.java代码:

 

/**
 * 
@author zhu国辉
 
*/

package  com.zgh.spring.dao;

import  java.util.List;

import  org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
 * 记住一定要引入org.springframework.orm.(hibernate3).support.HibernateDaoSupport
 * 也就是此类的父类.
 * 
@author zhu国辉
 *
 
*/

public   class  UserLoginDao  extends  HibernateDaoSupport  implements  IUserLoginDao  {

    
public List getUser(String username, String password) {
        List users
=getHibernateTemplate().find("from User u where username=? and password=?",new Object[]{username,password});
        
return users;
    }


}

以上是Dao层,通过Spring提供的Hibernate模板,实现持久层的操作。比单用Hibernate代码少多了,不用开启和关闭事务和session。

接下来是service层,我们会把事务添加到这层里,这一层一般会把Action中Form的数据转换成实体类给Dao层用,但本例只做登陆,没有体现出来。

我们在com.zgh.spring.service包中创建一个接口和一个实现类。IUserLoginService.java接口代码:

 

/**
 * 
@author zhu国辉
 
*/

package  com.zgh.spring.service;

import  java.util.List;

public   interface  IUserLoginService  {
    List getUser(String username,String password);

}

UserLoginService.java代码:

 

/**
 * 
@author zhu国辉
 
*/

package  com.zgh.spring.service;

import  java.util.List;
import  com.zgh.spring.dao.IUserLoginDao;;

public   class  UserLoginService  implements  IUserLoginService  {
    
private IUserLoginDao userLoginDao;
    
    
public void setUserLoginDao(IUserLoginDao userLoginDao) {
        
this.userLoginDao = userLoginDao;
    }


    
public List getUser(String username, String password) {
        
        
return userLoginDao.getUser(username, password);
    }


}

接下来我们开始写Struts的程序,下一页吧,太多了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值