在context中定义DataSource,创建SessionFactoy,设置参数;

DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。

在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor


最近在看SPRING和hibernate,学习了spring和hibernate之间整合,下面举出一个例子予以说明.
  
    首先,可以注入的是sessionfactory,因为sessionfactory的Datasource可以用spring注入.比如一个下面的例子,是对对象进行增加的

接口IUserDAO:
public interface IUserDAO {
    public void insert(User user);
 }
User.java:
public class User {
      private String name;
 
       public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
}

UserDao.java:
(这里省去了import等东西了)
public class UserDAO implements IUserDAO {
    private SessionFactory sessionFactory; 
    
    public UserDAO() {
    }
    
    public UserDAO(SessionFactory sessionFactory) { 
        this.setSessionFactory(sessionFactory);
    }
    
//注入sessionFactory
    public void setSessionFactory(
                        SessionFactory sessionFactory) { 
        this.sessionFactory = sessionFactory; 
    } 
    
    public void insert(User user) {
       Session session = sessionFactory.openSession();
           Transaction tx= session.beginTransaction();
         session.save(user); 
         tx.commit();
        session.close(); 
    }

//基本的datasource,存放实际连接串等东西
    <bean id="dataSource" 
          class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
        <property name="driverClassName"> 
            <value>com.mysql.jdbc.Driver</value> 
        </property> 
        <property name="url"> 
            <value>jdbc:mysql://localhost:3306/SpringHibernateDemo</value> 
        </property> 
        <property name="username"> 
            <value>root</value> 
        </property> 
        <property name="password"> 
            <value>123456</value> 
        </property>  
    </bean> 
    
<bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > 
        <property name="dataSource"> 
            <ref bean="dataSource"/> 
        </property> 
        <property name="mappingResources"> 
            <list> 
                <value>liaoo/springhibernatear/User.hbm.xml</value> 
            </list> 
        </property> 
        <property name="hibernateProperties"> 
            <props> 
                <prop key="hibernate.dialect"> 
                    org.hibernate.dialect.MySQLDialect
                </prop> 
            </props> 
        </property> 
    </bean>

<bean id="userDAO" class="liao.springhibernate.UserDAO"> 
        <property name="sessionFactory"> 
            <ref bean="sessionFactory"/> 
        </property> 
    </bean>

可以看到,这里对userDAO类的sessionFactory进行了注入,而参考到其中的bean-config.xml里sessionFactory里实现.可以看到,可以将datasource注入到LocalSessionFactoryBean中.要注意的是org.springframework.orm.hibernate3.LocalSessionFactoryBean是hibernate 3整合使用的,org.springframework.orm.hibernate.LocalSessionFactoryBean是hibernate 2中使用的.

最后是测试程序
public static void main(String[] args) {
        ApplicationContext context = 
            new FileSystemXmlApplicationContext(
                    "beans-config.xml");
        
              IUserDAO userDAO =  (IUserDAO) context.getBean("userDAO");
               User user = new User();
            user.setName("jackyrong");
             userDAO.insert(user);
}

Spring中使用Hibernate的更多相关文章

  1. Spring中操作Hibernate的几种方式

    1.直接操作模版方式HQL: //通过spring的模版方式来操作Hibernate的HQL语句 return this.getHibernateTemplate().find("from ...

  2. spring中集成hibernate

    1.hibernate框架是什么? (1)hibernate对jdbc进行的封装 (2)开源的轻量级框架. 2.hibernate思想:ORM(对象关系映射) (1)让实体类和数据库中的表一一对应(表 ...

  3. Spring中配置Hibernate事务管理

    <!-- transationManager --> <bean id="transactionManager" class="org.springfr ...

  4. spring中使用Hibernate中的getCurrentSession报出:createQuery is not valid without active transaction

    1.错误信息 HTTP Status 500 - createQuery is not valid without active transaction type Exception report m ...

  5. spring 中 hibernate 的 2种 配置方式(新旧 2种方式)

    Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置 Spring对hibernate配置文件hibernate.cfg.x ...

  6. Spring配置文件集成Hibernate配置文件

      Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置.  spring对hibernate配置文件hibernate.c ...

  7. spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法 方法一: 1.在Spring的applicationContext.xml中配置bean <!-- 启用注解注入  -->      ...

  8. 【Java EE 学习 50】【Spring学习第二天】【使用注解的DI实现】【spring中的继承】【动态代理伪hibernate实现】

    一.使用注解的DI实现 1.@Resource 使用该注解能够实现引用型属性的DI实现,该注解能够根据属性名和属性类型自动给属性赋值.一般使用@Resource(name="student& ...

  9. C3P0连接池在hibernate和spring中的配置

    首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...

随机推荐

  1. dede 5.7进后台卡死解决办法

    注释后台文件dede/templets/index_body.htm(大概在第18行) <script type="text/javascript"> function ...

  2. ecshop 用户名和邮箱都能登陆

    1.打开/includes/modules/integrates/integrate.php文件,并找到下面代码 if ($this->check_user($username, $passwo ...

  3. js+css实现带缓冲效果右键弹出菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 正则 提取html标签value

    using System.Text.RegularExpressions; //step2: extract expected info //<h1 class="h1user&quo ...

  5. VC远控(二)连接Server端及密码验证

    首先服务端是一个win32console应用程序. 在建立项目的时候需要勾选MFC 套接字的初始化同客户端相似: //对套接字进行初始化 WSADATA wsadata; WORD ver = MAK ...

  6. Web表格

    HTML元素学习 1:表格:表格的作用是显示表格数据,小范围内布局 表格的框架 <!doctype html> <html lang="en"> <h ...

  7. 不定高度的div背景或背景图片不显示问题

    在使用div+css进行网页布局时,如果外部div有背景颜色或者边框,而不设置其高度,在IE浏览器下显示正常.但是使用Firefox/opera浏览时却出现最外层Div的背景颜色和边框不起作用的问题. ...

  8. ubuntu ip

    一.使用命令设置Ubuntu IP地址 1.修改配置文件blacklist.conf禁用IPV6 sudo vi /etc/modprobe.d/blacklist.conf 在文档最后添加 blac ...

  9. QQ群聊天记录文件分割

    嗯,如题 是个蛋疼物 目前QQ的聊天记录导出功能很让人郁闷 三种聊天记录格式的导出 1  TXT   没图 2  BAK  只能再导入QQ使用 3  MHT 有图有字,缺点是一旦聊天记录很多,文件体积 ...

  10. 【原创】用JAVA实现大文件上传及显示进度信息

    用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...