zoukankan      html  css  js  c++  java
  • Spring 集成Hibernate的三种方式

    首先把hibernate的配置文件hibernate.cfg.xml放入spring的src目录下,并且为了便于测试导入了一个实体类Student.java以及它的Student.hbm.xml文件

    第一种集成方式:首先定义一个MySessionFactory的类

    package com.tz.core;
    
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.springframework.stereotype.Component;
    
    public class MysessionFactoryBean {
    
        public void setConfig(String config) {
            this.config = config;
        }
    
        public String getConfig() {
            return config;
        }
    
        public SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }
        private String config;
        private SessionFactory sessionFactory;
    
        public void init() {
            Configuration configuration = new Configuration().configure(config);
            sessionFactory = configuration.buildSessionFactory();
        }
    }

    在Spring的配置文件中进行IOC注入

    <bean id="sessionFactory" class="com.tz.core.MysessionFactoryBean" init-method="init">
             <property name="config" value="hibernate.cfg.xml"></property>
        </bean>

    注意要加上init-method="init",否则不会初始化,然后获取Session

    package hibernate;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    
    public class TestHibernate {
      @Test
      public void handle(){
          Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
          SessionFactory sessionFactory = configuration.buildSessionFactory();
          Session session = sessionFactory.openSession();
          System.out.print(session);
      }
    }

    用JUTIL测试打印一个地址则成功了

    2第二种方式,

      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
             <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
       </bean>

    获取方式

    	 @Autowired
    	 private SessionFactory sessionFactory;
    

      直接注入即可,记得扫包

    第三种集成方式,在Spring的配置文件applicationContext中写入.这种方法的一大特色是可以使用SPRING的数据源,hibernate.cfg.xml不导入也可

     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>   
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
        </bean>   
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
           <property name="dataSource" ref="dataSource"></property>
        </bean> 
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
           <property name="dataSource" ref="dataSource"></property>
            <property name="mappingLocations">
               <list>
                   <value>com/tz/entity/Student.hbm.xml</value>
               </list>
            </property>
            <property name="hibernateProperties">
               <props>
                  <prop key ="hibernate.show_sql">true</prop>
                  <prop key="hibernate.format_sql">true</prop>
               </props>
            </property>         
        </bean>

    获取SessionFactory对象的方式与第二种相同

  • 相关阅读:
    VMware中安装Ubuntu后,安装VMwareTools提示“Not enough free space to extract VMwareTools-10.3.10-13959562.tar.gz”的解决办法
    XShell下便捷上载/下载文件到虚拟机
    无法获取 vmci 驱动程序版本: 句柄无效。 驱动程序 vmci.sys 版本不正确。请尝试重新安装 VMware Workstation。 打开模块DevicePowerOn电源失败。
    VMware Workstation pro无法在Windows上运行,检查可在Windows上运行的此应用的更新版本
    mybatisplus运行时修改@TableName注解的schema值
    easyexcel不创建对象导出图片
    鸿蒙(HarmonyOS)开发笔记四:项目结构
    鸿蒙(HarmonyOS)开发笔记三:核心概念
    鸿蒙(HarmonyOS)开发笔记二:使用DevEco Studio创建一个项目
    鸿蒙(HarmonyOS)开发笔记一:系统简介
  • 原文地址:https://www.cnblogs.com/zengda/p/4328875.html
Copyright © 2011-2022 走看看