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"; } }