PerKins Zhu

Le vent se lève,il faut tenter de vivre.

导航

springMVC整合spring和hibernate4(适合于框架的搭建)

Posted on 2015-12-19 17:08  PerKins.Zhu  阅读(345)  评论(0编辑  收藏  举报

基础的东西不再详细说明,只在这里说明一下主要的配置文件,如何通过配置文件取得sessionFactory .

步骤:

  1:在web.xml中引入springmvc的配置文件springmvc.xml(主要用于mvc的后台逻辑和前台页面的映射)

  2:在web.xml中引入spring的配置文件applicationContext-bean.xml(主要用于获取各个bean,例如;sessionFactory)

  3:如何在applicationContext-bean.xml中成功配置sessionFactory并同时使用c3p0数据连接池

  4:如何取得sessionFactory并操作数据库。

关键代码如下:

1、web.xml

 

<!--配置文件applicationContext-bean.xml,在此文件中设置sessionFactory-->
        <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/classes/spring/applicationContext-bean.xml</param-value>
	</context-param>
        <listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
<!--配置springMVC的配置文件springmvc.xml-->	
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		 <init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springMvc/springmvc.xml</param-value>
		</init-param> 
	</servlet>

 

  现在 容器就能够找到相关的配置文件。

2、applicationContext-bean.xml只说明如何配置sessionFactory

<!-- 配置SessionFactory -->
 <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <!-- 指定hibernate的配置文件位置 在hibernate.cfg.xml中配置的属性会被c3p0中的参数所覆盖,此时hibernate.cfg.xml的作用主要是导入实体bean所对应的xxx.hbm.xml文件-->
	<property name="configLocation" value="classpath:hibernate/hibernate.cfg.xml"></property>
	<!-- 配置c3p0数据库连接池 -->
	<property name="dataSource">
	  <bean class="com.mchange.v2.c3p0.ComboPooledDataSource"><!--注意此处,配置dataSource使用的是c3p0,此处在<property>标签中嵌套了一个<bean>标签-->
<!-- 数据连接信息 -->
<property name="jdbcUrl" value="jdbc:mysql:///test"></property> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="user" value="root"></property> <property name="password" value="jinzhao"></property> <property name="initialPoolSize" value="3"></property> <property name="minPoolSize" value="3"></property> <property name="maxPoolSize" value="5"></property> <property name="acquireIncrement" value="3"></property> <property name="maxStatements" value="8"></property> <property name="maxStatementsPerConnection" value="5"></property> <property name="maxIdleTime" value="1800"></property> </bean> </property> </bean>

  3、有了sessionFactory之后如何取得呢?

import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.zpj.bean.User;
@Controller
@RequestMapping(value="/movie")
public class MovieController {
	@Resource
	SessionFactory sf;//注入sessionFactory
	
	@RequestMapping(value="/list")
	public String getMovies()throws Exception{
		User user=new User();
		user.setU_address("sdfsd");
		user.setU_pass("sdfs");
		user.setU_realName("sdfs");
		user.setU_phone("12315465");
		user.setU_name("sdsd");
		sf.openSession().save(user);//打开session,操作数据
		return "welcome";
	}
}