zoukankan      html  css  js  c++  java
  • springMVC整合spring和hibernate4(适合于框架的搭建)

    基础的东西不再详细说明,只在这里说明一下主要的配置文件,如何通过配置文件取得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";
    	}
    }
    

      

  • 相关阅读:
    forEach与迭代器
    JavaMap
    java stack
    Java的Iterator迭代器
    JavaScript基础知识汇总
    Http协议总结
    以太坊交易剔重规则
    localhost与127.0.0.1与0.0.0.0
    boost之asio
    调和级数求和
  • 原文地址:https://www.cnblogs.com/PerkinsZhu/p/5059417.html
Copyright © 2011-2022 走看看