在myeclipse下整合spring和hibernate(转载)

整合hibernate和spring这样的文章已经很多了,下面我们来看看如何利用myeclipse的功能为整合提速咯

1.首先,创建工程,可以直接选创建J2EE web工程
   (这....就不用贴图了吧)

2.导入spring, 选择myeclipse的add spring capabilities,注意把copy .....打勾(注,如果想要在spring的配置文件中配置hibernate的话, 一定要先导入spring)




3. 导入hibernate, 选择myeclipse的add hibernatecapabilities,注意把copy .....打勾




这时,myeclipse检测到已有spring,会问如何处理hibernate配置信息,  这里, 我们选择把hibernate的配置信息写在spring的配置信息中



接着,既然选择把在spring配置文件中配置hibernate信息,就需要设置hibernate的sessionfactory在配置文件中的bean id, 这里, 就设置为sessionFactory




然后要配置sessionFactory对应的数据源,注,数据源对应的bean id也需要设置,可以简单设置为dataSource
就不贴图咯




最后,选择sessionfactory对于的实现类,可以就用spring提供的LocalSessionFactory



这样, 我们就在项目中添加了spring和hibernate并将他们给予整合咯

3.应用:
  配置好了环境,我们当然还得应用咯.下面给出我的代码
首先创建pojo和对应的hbm.xml

package  mapping;

public   class  Test  {

    
public  Test()  {
        
super ();
        
//  TODO Auto-generated constructor stub
    }


    
private   int  id;
    
    
private  String name;

    
public   int  getId()  {
        
return  id;
    }


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


    
public  String getName()  {
        
return  name;
    }


    
public   void  setName(String name)  {
        
this .name  =  name;
    }

    
    
}


<? 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  default-lazy ="false"   auto-import ="true"  package ="mapping" >
   
< class  table ="test"  name ="Test" >
     
< id  name ="id"  column ="test_id"  type ="int" >
       
< generator  class ="native" ></ generator >
     
</ id >
     
     
< property  name ="name"  type ="string"  column ="name" ></ property >
   
</ class >
</ hibernate-mapping >


然后开发对应的DAO操作pojo, 因为我比较懒,所以直接使用HibernateTemplate进行操作

package  mapping;
 
import  java.util.List;

import  org.hibernate.Criteria;
import  org.springframework.orm.hibernate3.HibernateTemplate;

public  class  TestDAO  {

    
private HibernateTemplate hibernateTemplate;

    
public TestDAO() {
        
super();
        
// TODO Auto-generated constructor stub
    }


    
public Test getTest(String name) throws Exception {
        Test t
=new Test();
        t.setName(name);
        List list 
= this.getHibernateTemplate().findByExample(t);
        
if (list.isEmpty())
            
throw new Exception("No Such Record");
        
else
            
return (Test) list.get(0);
    }


    
public void addTest(String name) {
        Test test 
= new Test();
        test.setName(name);
        
this.getHibernateTemplate().save(test);
    }


    
public void updateTest(Test test){
        
this.getHibernateTemplate().update(test);
    }

    
    
public void deleteTest(Test test){
        
this.getHibernateTemplate().delete(test);
    }

    
    
public HibernateTemplate getHibernateTemplate() {
        
return hibernateTemplate;
    }


    
public void setHibernateTemplate(HibernateTemplate ht) {
        
this.hibernateTemplate = ht;
    }

}

相应的,还需要修改下spring的配置文件

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

< beans >
 

    
< bean  id ="dataSource"  class ="org.apache.commons.dbcp.BasicDataSource" >
        
< property  name ="driverClassName" >
            
< value > com.mysql.jdbc.Driver </ value >
        
</ property >
        
< property  name ="url" >
            
< value > jdbc:mysql://localhost:3306/nirvana?useUnicode=true </ value >
        
</ property >
        
< property  name ="username" >
            
< value > dyerac </ value >
        
</ property >
        
< property  name ="password" >
            
< value ></ value >
        
</ property >
    
</ bean >
        
    
< bean  id ="sessoinFactory"  class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
        
< property  name ="dataSource" >
            
< ref  bean ="dataSource"  />
        
</ property >
        
< property  name ="hibernateProperties" >
            
< props >
                
< prop  key ="hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >
                
< prop  key ="connection.characterEncoding" > utf8 </ prop >
                
< prop  key ="hibernate.show_sql" > true </ prop >
                
< prop  key ="hibernate.hbm2ddl.auto" > update </ prop >
            
</ props >
        
</ property >
        
< property  name ="mappingDirectoryLocations" >
           
< list  >
            
< value > src/mapping </ value >
           
</ list >
        
</ property >
    
</ bean >
    
    
< bean  id ="hibernateTemplate"  class ="org.springframework.orm.hibernate3.HibernateTemplate" >
      
< property  name ="sessionFactory" >
       
< ref  bean ="sessoinFactory" />
      
</ property >
      
< property  name ="allowCreate" >
        
< value > true </ value >
      
</ property >
    
</ bean >
    
    
< bean  id ="testDAO"  class ="mapping.TestDAO" >
      
< property  name ="hibernateTemplate" >
        
< ref  bean ="hibernateTemplate" />
      
</ property >
    
</ bean >
</ beans >


最后的最后,开发一个测试类:

import  mapping.Test;
import  mapping.TestDAO; 
import  org.springframework.context.ApplicationContext;
import  org.springframework.context.support.FileSystemXmlApplicationContext;

public  class  Tester  {
 
    
public static void main(String args[]) {
        ApplicationContext ctx 
= new FileSystemXmlApplicationContext(
                
"src/applicationContext.xml");
        TestDAO test 
= (TestDAO) ctx.getBean("testDAO");
        
//test.addTest("dyerac");
        try 
            Test t 
= test.getTest("bsbs");
            System.err.println(t.getName());
            
//t.setName("bsbs");
            
//test.updateTest(t);
             
//test.deleteTest(t);
        }
 catch (Exception e) 
            System.err.println(e);
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值