posts - 0,  comments - 17,  trackbacks - 0

来源:互联网

整合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);
        }

    }

}

posted on 2008-01-25 09:37 xyz 阅读(663) 评论(0)  编辑  收藏 所属分类: 网络文摘

只有注册用户登录后才能发表评论。


网站导航:
 

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

留言簿

随笔档案(1)

文章分类(44)

文章档案(46)

收藏夹(1)

Adobe

AOP

API

appServer

BI

c

  • c-free
  • codeblocks
  • codelite
  • CodeLite IDE 是一个强大的开源,跨平台的 C/C++整合开发环境. 支持包括 Windows、Linux 和 Mac 系统下运行
  • codelite官网
  • dev-c++
  • Dev-C++是一个C&C++开发工具,它是一款自由软件,遵守GPL协议。
  • GCC
  • GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。

Cache

CMS

DB

eclipse

FreeMarker

hibernate

html5

ibatis

java

jquery

js

json

Linux

Log

mail server

mobile

mysql

oauth

openID

other

PHP

portal

report

Scheduler

schema

Security

SOA

spring

struts

UI原型设计

w3c

Wap

webservice

xml

供应链管理

博客链接

好网站

工作流

开源网

招聘

插件下载

操作系统

构建可伸缩的系统

构建工具

测试

  • IETest
  • IE官网
  • OpenSTA
  • Siege
  • Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力

游戏

源码托管

经营

资源

金融/财务

搜索

  •  

最新评论