整合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 2006-08-04 17:42 dyerac in java... 阅读(1868) 评论(9) 编辑 收藏 引用 所属分类: spring&hibernate 、 原创文章