• 【Spring】Spring框架如何集成Hibernate框架


    下面个整理一下hibernate和Spring框架的结合。

    首先是引入hibernate框架的包、Spring框架的包、数据库驱动包。

    User.java文件

    package cn.shop.bean;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="user")
    public class User {
        
        @Id
        @Column(name="uid")
        private int id;
        
        @Column(name="uname")
        private String name;
        
        @Column(name="upass")
        private String password;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }
    User.java

    hibernate.cfg.xml文件

    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>
    
        <session-factory>
            <property name="dialect">
                org.hibernate.dialect.MySQLDialect
            </property>
            
            <!-- 加载映射描述信息 -->
            <mapping class="cn.shop.bean.User" />
            
        </session-factory>
    </hibernate-configuration>
    hibernate.cfg.xml

    applicationContext.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context" 
        xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
        xmlns:jee="http://www.springframework.org/schema/jee" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
            http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
            http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
        
        <context:component-scan base-package="cn.shop"></context:component-scan>
    
      <bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
         <property name="locations">
           <list>
             <value>classpath:db-config.properties</value>
           </list>
       </property>
       </bean>
    
        <bean id="c3p0" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="user" value="${db.username}"></property>
            <property name="password" value="${db.password}"></property>
            <property name="driverClass" value="${db.dirverClass}"></property>
            <property name="jdbcUrl" value="${db.url}"></property>
        </bean>
        
        <!-- 配置hibernatetemplate -->
        <bean id="template" class="org.springframework.orm.hibernate4.HibernateTemplate">
            <!-- 注入一个SqlSessionFactory对象 -->
            <property name="sessionFactory" ref="sessionFactory">
            </property>
        </bean>
        
        <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <!-- 指定hibernate.cfg.xml -->
            <property name="configLocations" value="classpath:hibernate.cfg.xml">
            </property>
            <property name="dataSource" ref="c3p0"></property>
        </bean>
        
        
    </beans>
    applicationContext.xml

    db-config.properties文件

    db.url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8
    db.username=root
    db.password=517839
    db.dirverClass=com.mysql.jdbc.Driver
    db-config.properties

    UserDao.java文件

    package cn.shop.dao;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.orm.hibernate4.HibernateTemplate;
    import org.springframework.stereotype.Repository;
    
    import cn.shop.bean.User;
    
    @Repository("userDao")
    public class UserDao {
    
        @Resource
        private HibernateTemplate template;
        
        public List findUserById(String name,String password){
            return template.find("from User where name=? and password=?",name,password);
        }
    }
    UserDao.java

    到这里就配置到Dao层了,使用如下代码进行测试:

            ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
            UserDao userdao= ac.getBean("userDao",UserDao.class);
            List<User> find = userdao.findUserById("honny","123456");
            for(User user:find){
                System.out.println(user);
            }
  • 相关阅读:
    自我介绍+软工5问
    团队展示&选题
    团队展示&选题 (白衣天使队)
    结对编程(-java-实现)
    个人项目wc(Java)
    自我介绍+软工五问
    软件工程结课作业
    第四次博客作业-结对项目
    软件工程第三次作业——关于软件质量保障初探
    20194613 自动生成四则运算第一版报告
  • 原文地址:https://www.cnblogs.com/HDK2016/p/7359022.html
Copyright © 2020-2023  润新知