对find方法的疑惑

来源:2-2 SSH-案例:登录功能代码实现

慕粉4310785

2017-03-11 23:12

对于find方法 为什么老师的直接是Find(String,String,String),而我的必须要Find(String,object)呢。框架版本的问题吗?

写回答 关注

2回答

  • Tatsutya
    2017-03-28 17:30:22
    Hibernate5 里面HibernateTemplateClass里的find源码
    (选中find按F3即可看到)
    @Override
        public List<?> find(final String queryString, final Object... values) throws DataAccessException {
            return executeWithNativeSession(new HibernateCallback<List<?>>() {
                @Override
                @SuppressWarnings({"rawtypes", "deprecation"})
                public List<?> doInHibernate(Session session) throws HibernateException {
                    org.hibernate.Query queryObject = (org.hibernate.Query)
                            ReflectionUtils.invokeMethod(createQueryMethod, session, queryString);
                    prepareQuery(queryObject);
                    if (values != null) {
                        for (int i = 0; i < values.length; i++) {
                            queryObject.setParameter(i, values[i]);
                        }
                    }
                    return queryObject.list();
                }
            });
        }


  • mkxuanlong
    2017-03-12 00:18:20

    不懂,不过我可以给你另外一种find(String queryString,Object[] values)的方式,变成

    this.getHibernateTemplate().find(hql,new String[]{employee.getUsername(),employee.getPassword()});

    效果和this.getHibernateTemplate().find(hql, employee.getUsername(),employee.getPassword());是一样的。

基于SSH实现员工管理系统之案例实现篇

SSH框架整合案例之实现篇,手把手带你实现员工管理系统

50212 学习 · 323 问题

查看课程

相似问题