• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DynamicHibernate: 项目不存在商业价值,广大学习爱好者可根据自己的喜好重构融入到自 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

DynamicHibernate

开源软件地址:

https://gitee.com/wstv/DynamicHibernate

开源软件介绍:

项目不存在商业价值,广大学习爱好者可根据自己的喜好重构融入到自己的hibernate项目中,项目就是一个简单的basedao的封装查询 方便快捷和生硬的hibernate 相比较 优点在于 :“灵活的查询方式、灵活的ql语句管理、自动实现sql/hql语句的切换执行。” 因为模板采用的是freemarker技术,所以:语句模板块类似于mybatis 配置文件方式,支持各种if for相关标签语法 。 相关用法请参见 freemarker官方语法,简单易懂 分分钟上手。

项目简单的实现方式就是 使用freemarke api来读取模板缓存文件节点的内容 读取到之后就是对应的sql 或hql 然后由hibernate 来执行语句来执行。项目中大多使用了泛型技术,比如返回值的封装 等等。 支持各种各样的方式查询。实现了简单的“CRUD” 不像硬编码的方式 将sql或者hql写死到代码里面维护起来很复杂。使得项目代码看起来也比较杂乱。

這样封装以后代码是代码 hql/sql 单独存在 便于管理。

QQ:1099532501

职业:JAVA DEVELOPER

    ArrayList<Condition> conditions = new ArrayList<Condition>();

######普通字段筛选条件

        String id = "06f8f0ef-0916-40c7-a354-2457e628293f";        conditions.add(new Condition("id",id, Op.EQ, OpType.AND));

######关联对象字段筛选条件

        String deptName = "研发部2";        conditions.add(new Condition("dept.name",deptName, Op.EQ, OpType.AND));

######多字段组合条件 column ="xxx,xxx,xxx" 中间用英文逗号隔开即可。 意思为需要满足当前where 1=1 and (name='wstv' and sex='wstv')//如果是 GROUP_AND_OR = where 1=1 or (name='wstv' or sex='wstv')

        conditions.add(new Condition("name,sex","1", Op.EQ, OpType.GROUP_AND_AND));        List<Employee> list = employeeService.findList(conditions, null);        System.out.println(JSON.toJSONString(list));

######order by 用法

        conditions.add(new Condition("name","1", Op.EQ, OpType.AND));        LinkedHashMap<String, OrderType> orderby = new LinkedHashMap<String, OrderType>();        orderby.put("name",OrderType.ASC);        List<Employee> list = employeeService.findList(null, orderby);        System.out.println(JSON.toJSONString(list));

######分页用法

        conditions.add(new Condition("dept.name","研发部2", Op.EQ, OpType.AND));        LinkedHashMap<String, OrderType> orderby = new LinkedHashMap<String, OrderType>();        orderby.put("name",OrderType.ASC);        //pageIndex 第几页   pageSize = 每页要显示多少条        PageBean<Employee> page = employeeService.findPage(conditions, orderby, 1, 10);        System.out.println(JSON.toJSONString(page));

######动态模板的用法 hql方式

        String queryName = "emp.findById";        Map<String, Object> parameters = new HashMap<String, Object>();        parameters.put("id","06f8f0ef-0916-40c7-a354-2457e628293f");        PageBean<Employee> pageBean =  baseDao.queryByDynamicName(queryName, 1,10, Employee.class,null, parameters);        List<Employee> data = pageBean.getData();        if (data!=null && !data.isEmpty()){            System.out.println(JSON.toJSONString(data));        }

######动态模板的用法 sql 方式

        //动态模板语句返回的字段,需要和模板的sql字段顺序保持一致        String[] fields = new String[]{                "id",                "name"        };        String queryName = "emp.findByName";        Map<String, Object> parameters = new HashMap<String, Object>();        parameters.put("id","06f8f0ef-0916-40c7-a354-2457e628293f");        PageBean<Map<String, Object>> pageBean = employeeService.findByNamedQuery(queryName, 1, 10, fields, parameters);        List<Map<String, Object>> data = pageBean.getData();        if (data!=null && !data.isEmpty()){           for(Map map : data){               System.out.println(map.get("id"));           }        }

个人网站:https://blog.hyaroma.com

个人摄影:https://tuchong.com/1649042/

alt text


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap