zoukankan      html  css  js  c++  java
  • springhibernate错误总结1

    1、hibernate版本在类中的包的导入。:org.springframework.beans.factory.BeanCreationException
    问题 【本来配置在数据层、事务管理的是版本4,但是在service层引入package时在导入了自动默认为3的版本】出现bean加载异常。

    2、事务管理器连接的数据池。:
    【单独的spring里直接连接数据源就行,但是整合hibernate后,需要通过hibernate创建会话然后去链接数据源】


    3、查询方法:由于经过spring整合后的hibernate无法直接获取session,只能通过sessionfactory工厂来开启session。
    一种方法是通过回掉的返回值来获取session:
    super.getHibernateTemplate().executeFind(new HibernateCallback() {
    @Override
    public Object doInHibernate(Session session){
    Query query = session.createQuery();
    List data = query.list();
    }
    });
    或者: return this.getHibernateTemplate().execute(new HibernateCallback<List<Students>>() {
    public List<Students> doInHibernate(Session session) throws HibernateException{
    String sql = "select * from Students";
    return session.createSQLQuery(sql).addEntity(Students.class).list();

    }
    });

    另一种方法是回到hibernate,添加一个新的模板jdbc:
    <!-- 配置jdbc 模板 -->
    <bean id="jts" class="org.springframework.jdbc.core.JdbcTemplate" >
    <!-- 将数据源配置给jdbc模板 -->
    <property name="dataSource" ref="dataSource"/>
    </bean>

    4、关于通过注入的方法创建sessionfactory工厂,间接回到 hibernate的原始方法,创建一个session:
    //通过注解的方法注入
    @Autowired
    private SessionFactory sessionFactory;

    调用: String hql = "from Students where classid='"+id+"'";//
    Session se = sessionFactory.getCurrentSession();//创建一个session;
    Query sq = se.createQuery(hql);//翻译hql语句并且执行
    List<Students> li = sq.list();//转换
    se.close(); //关闭刚刚创建的session

  • 相关阅读:
    css3动画事件 animationend animationiteration animationstart
    dom对象---增加class属性,去除class属性
    数组的indexOf() 方法
    line-height中的五种取值方式和继承
    html 中line-height相关的四种box模型
    真正的能理解CSS中的line-height,height与line-height
    background-size:contain与cover的区别
    激活win10系统
    table-layout:fixed 应用
    js数组fill()方法
  • 原文地址:https://www.cnblogs.com/puzhichao/p/8392039.html
Copyright © 2011-2022 走看看