spring如何代替hibernate 我拿到一个项目,发现这个SSH项目没有hibernate.xml,在spring里面已经配置好了,但是有点看不懂…有没有高手讲解一下,最好有代码哦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过spring管理hibernate的sessionfactory。具体的hibernate参数配置的spring的HibernateSessionfactory管理器。由spring包装了。 <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <property name="mappingResources">//相当于hibernate.cfg.xml.的<mapping resource="org/hibernate/test/legacy/Simple.hbm.xml"/> <list> <value>product.hbm.xml</value> </list> </property> <property name="hibernateProperties"> //hibernate.cfg.xml的<property name="show_sql">true</property> <value> hibernate.dialect=org.hibernate.dialect.HSQLDialect </value> </property> </bean>你看看你spring配置文件中有类似这种代码没?这就是配置hibernate的了 spring 通过sessionFactory 管理hibernate敏捷高内聚,低耦合理解这些关键字 已经写到Spring的配置文件中了,可以在Spring配置文件中查看相应配置。 通过spring管理hibernate的sessionfactory。具体的hibernate参数配置的spring的HibernateSessionfactory管理器。由spring包装了。 是的,h被s包装了,详见application.xml,里面即可找到配置h数据源和事务的地方,整个h提供的dao层即是spring的dao服务的一种实现,但spring并不能代替h。 <property name="packagesToScan"> <list> <value>com.family168.domain</value> </list></property> Spring有自己的数据库源,通过配置,无需HIBERNATE的配置文件<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <property name="url" value="jdbc:microsoft:sqlserver://localhost;DatabaseName=*"/> <property name="username" value="*"/> <property name="password" value="*"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" destroy-method="close"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources"> <list> <value>com/*/hibernate/*.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect </prop> </props> </property> </bean> 大型项目一般都会有独立的hibernate和spring配置文件,你现在手头的项目可能只是为了省事儿,俩整合一起了,没什么区别,只是说明spring做的东西太多了你看spring的配置属性就能看出来,属性值跟hibernate里的很相似,也好理解! 1.applicationContext.xmlWEB-INF下<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@aaa:1521:bbb"> </property> <property name="username" value="aaa"></property> <property name="password" value="aaa"></property> </bean> <!--ibatis--> --这里是配的ibatis,楼主可以对应配置其他ORM框架 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value> classpath:com\aaa\dao\impl\ibatis\SqlMapConfig.xml </value> </property> <property name="dataSource" ref="dataSource" /> </bean>2.context.xmlMETA-INF下<Context reloadable="true"> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@aaa:1521:bbb" username="aaa" password="bbb" maxActive="200" maxIdle="30" maxWait="-1" /></Context> <Context reloadable="true"><Resourcename="jdbc/test"auth="Container"type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@aaa:1521:bbb"username="aaa"password="bbb"maxActive="200"maxIdle="30"maxWait="-1" /></Context> 在ssh中spring 起的是连接strut、hibernate 桥梁的作用。也就是所谓的容器放到spring里整合。面向对象接口编程。整合方式有多种。只要明白原理就能高效使用 你拿到的项目是将spring及hibernate的配置文件都放到了spring配置文件中,hibernate.cfg.xml文件中的内容被spring中的一些代码所替代,如下<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"> </property> <property name="url" value="jdbc:oracle:thin:@192.168.1.116:1521:orcl"> </property> <property name="username" value="zxt"></property> <property name="password" value="11111"></property> </bean><!--上面的代码是数据库驱动的设置--> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> </props> </property> <property name="mappingResources"> <!--映射文件从 这里加入--> <list> <value>com/ssh2/model/Books.hbm.xml</value> <value>com/ssh2/model/Sort.hbm.xml</value> <value>com/ssh2/model/Press.hbm.xml</value> </list> </property> </bean>spring通过sessionFactory管理文件,并且充分体现了Java的高内聚、低耦合 ,是spring自己提供的类,有很多东西spring已经帮我们处理了,所以个人认为在ssh中使用单一的spring配置文件更方便及简单。两种配置方法各有优缺点,楼主可以根据自己的喜好选择相应的配置方法 EXTJS中弹出Panel的一个小问题! 杭州2年java web工资 如何加个进度条 tomcate启动不了 structs 入门问题 一个很基础的XML问题~ 谢谢大家帮忙~ 问一个Struts的简单的问题。想不明白。晕ing.... 求救,关于socket\DatagramSocket,我看不看得到明天的太阳,就全托付给各位大哥了~~ 一个极其简单的问题!救命啊 栈溢出异常(StackOverflowError)不知怎么搞才好,求高手 .net hibernate映射文件和表
<property name="dataSource" ref="myDataSource"/>
<property name="mappingResources">
//相当于hibernate.cfg.xml.的<mapping resource="org/hibernate/test/legacy/Simple.hbm.xml"/>
<list>
<value>product.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
//hibernate.cfg.xml的<property name="show_sql">true</property>
<value>
hibernate.dialect=org.hibernate.dialect.HSQLDialect
</value>
</property>
</bean>
你看看你spring配置文件中有类似这种代码没?这就是配置hibernate的了
敏捷
高内聚,低耦合
理解这些关键字
<list>
<value>com.family168.domain</value>
</list>
</property>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url"
value="jdbc:microsoft:sqlserver://localhost;DatabaseName=*"/>
<property name="username" value="*"/>
<property name="password" value="*"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
destroy-method="close">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>com/*/hibernate/*.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>
你现在手头的项目可能只是为了省事儿,俩整合一起了,
没什么区别,只是说明spring做的东西太多了
你看spring的配置属性就能看出来,属性值跟hibernate里的很相似,也好理解!
WEB-INF下
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@aaa:1521:bbb">
</property>
<property name="username" value="aaa"></property>
<property name="password" value="aaa"></property>
</bean> <!--ibatis--> --这里是配的ibatis,楼主可以对应配置其他ORM框架
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>
classpath:com\aaa\dao\impl\ibatis\SqlMapConfig.xml
</value>
</property>
<property name="dataSource" ref="dataSource" />
</bean>2.context.xml
META-INF下<Context reloadable="true">
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@aaa:1521:bbb"
username="aaa"
password="bbb"
maxActive="200"
maxIdle="30"
maxWait="-1" />
</Context>
<Context reloadable="true">
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@aaa:1521:bbb"
username="aaa"
password="bbb"
maxActive="200"
maxIdle="30"
maxWait="-1" />
</Context>
整合方式有多种。只要明白原理就能高效使用
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@192.168.1.116:1521:orcl">
</property>
<property name="username" value="zxt"></property>
<property name="password" value="11111"></property>
</bean>
<!--上面的代码是数据库驱动的设置-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<property name="mappingResources"> <!--映射文件从 这里加入-->
<list>
<value>com/ssh2/model/Books.hbm.xml</value>
<value>com/ssh2/model/Sort.hbm.xml</value>
<value>com/ssh2/model/Press.hbm.xml</value>
</list>
</property>
</bean>spring通过sessionFactory管理文件,并且充分体现了Java的高内聚、低耦合 ,是spring自己提供的类,有很多东西spring已经帮我们处理了,所以个人认为在ssh中使用单一的spring配置文件更方便及简单。
两种配置方法各有优缺点,楼主可以根据自己的喜好选择相应的配置方法