java - SpringMVC整合hibernate自己写了一个通用Dao层,我想把get方法做的更加强大点,支持模糊查询,希望高手指点
PHP中文网
PHP中文网 2017-04-17 16:26:55
[Java讨论组]

关键是这个get方法,现在只是能够支持简单的键值对:

@SuppressWarnings("unchecked")
    @Override
    public T getByElse(Map params) {
        if(params.size() == 0) {
            return null;
        } else {
            Iterator> iterator = params.entrySet().iterator();
            String sql = "from " + clazz.getSimpleName() + " where ";
            while (iterator.hasNext()) {
                Entry entry = iterator.next();
                sql += entry.getKey() + " = :" + entry.getKey();
                if(iterator.hasNext()) {
                    sql += " and ";
                }
            }
            Query query = sessionFactory.getCurrentSession().createQuery(sql);
            iterator = params.entrySet().iterator();
            while (iterator.hasNext()) {
                Entry entry = iterator.next();
                query.setParameter(entry.getKey(), entry.getValue());
            }
            try {
                return (T)query.uniqueResult();
            } catch (Exception e) {
                return null;
            }
        }
    }
    我想让这个getByElse方法也能够支持模糊查询,但水平有限,希望高手指点
PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
PHPz

1.选种数据结构,一个信息位存放是否like,或大于小于,between and的类型种类,一个存放占位名称,一个存放参数值,自己程序判断编写hql

2.不想搞复杂自己拼hql的话,直接使用qbc

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号