zoukankan      html  css  js  c++  java
  • spring4和hibernate4.0.0的整合

    1.在myeclipse以下创建一个javaproject或者webproject,我创建的时webproject,用的myeclipse2013

    2.导入spring的依赖包

    3.导入hibernate的依赖包

     

    4.在src文件夹以下配置hibernate的核心文件hibernate.cfg.xml

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>

        <session-factory>

            <!-- Database connection settings -->
            <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>

            <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">1</property>

            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>

            <!-- Disable the second-level cache  -->
            <!-- <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> -->

            <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">true</property>

            <!-- Drop and re-create the database schema on startup -->
            <property name="hbm2ddl.auto">update</property>

            <mapping resource="org/hibernate/domain/Event.hbm.xml"/>
            <!-- annotation的配置方式 -->
            <mapping class="org.hibernate.domain.Teacher"/>

        </session-factory>

    </hibernate-configuration>

    5.在WEB-INFO文件夹以下配置spring的核心配置文件applicationContext

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!-- <bean id="..." class="..."> collaborators and configuration for this
      bean go here </bean> <bean id="..." class="..."> collaborators and configuration
      for this bean go here </bean> more bean definitions go here -->
     <!-- 配置sessionFactory -->

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

     <bean id="DaoImp" class="com.persistent.DaoImp">
      <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>


     


    </beans>

    6.编写持久化类

    package org.hibernate.domain;

    import javax.persistence.Entity;
    import javax.persistence.Id;
    //定义一个实体类
    @Entity
    public class Teacher {

     private int id;//id
     private String title;//职场
     private String name;//姓名
     //定义一个主键
     @Id
     public int getId() {
      return id;
     }
     public void setId(int id) {
      this.id = id;
     }
     public String getTitle() {
      return title;
     }
     public void setTitle(String title) {
      this.title = title;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     
    }

    7.编写保存之久话的类和方法

    package com.persistent;

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.domain.Teacher;

    public class DaoImp {

     private SessionFactory sessionFactory;
     
     public SessionFactory getSessionFactory() {
      return sessionFactory;
     }

     public void setSessionFactory(SessionFactory sessionFactory) {
      this.sessionFactory = sessionFactory;
     }

     public void save(){
      Session session=sessionFactory.getCurrentSession();
      session.beginTransaction();
            Teacher teacher = new Teacher();
            teacher.setId(6);
            teacher.setName("hibernate!!");
            teacher.setTitle("we will");
            session.save(teacher);//利用annotation进行插入操作
            session.getTransaction().commit();
     }
    }

    8.在hibernate.cfg.xml文件里配置

     <!-- annotation的配置方式 -->
            <mapping class="org.hibernate.domain.Teacher"/>

    9.进行測试

    package com.demo.test;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.FileSystemXmlApplicationContext;

    import com.persistent.DaoImp;

    public class TestMain2 {

     /**
      * @param args
      */
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      
          
      
     
      
      ApplicationContext context =
           new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");
            /*Hello hello=(Hello) context.getBean("hello");
            hello.display();*/
      DaoImp di = (DaoImp)context.getBean("DaoImp");
      di.save();
      
     }

    }

    10.能够看查看数据库,已经有数据了,控制台也打印出了sql语句

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    重构改善既有代码设计--重构手法 之重新组织你的函数总结
    重构改善既有代码设计--重构手法09:Substitute Algorithm (替换算法)
    重构改善既有代码设计--重构手法08:Replace Method with Method Object (以函数对象取代函数)
    重构改善既有代码设计--重构手法07:Remove Assignments to Parameters (移除对参数的赋值)
    重构改善既有代码设计--重构手法06:Split Temporary Variable (分解临时变量)
    重构改善既有代码设计--重构手法05:Introduce Explaining Variable (引入解释性变量)
    重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)
    leetcode-441-Arranging Coins
    leetcode-438-Find All Anagrams in a String
    leetcode-434-Number of Segments in a String
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6944253.html
Copyright © 2011-2022 走看看