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

myJdbcTemplate: 基于spring JdbcTemplate的扩展,结合velocity模板实现sql语句的可配 ...

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

开源软件名称:

myJdbcTemplate

开源软件地址:

https://gitee.com/springbootPlus/myJdbcTemplate

开源软件介绍:

项目背景:

电信行业项目多使用ORACLE数据库,查询SQL的优化也是基于ORACLE执行计划;

HIBERNATE在应对大表关联查询时,束手束脚无法很好的优化SQL,需要一个可配置可热部署的类ibatis工具类;

为什么不是ibatis?

1.Ibatis项目定位于ORM和存JDBC操作,试图结合两者,但其实效果并不好;ORM配置复杂,另外JPA是未来主流;

2.分页查询的扩展API设计的不是很好,实现起来令人费解。这一点没有org.hibernate.dialect.Dialect接口设计得好。

3.Ibatis的sql修改后,无法实现热部署SQL配置;

MYJDBCTMEPLATE的定位:

1.扩展JDBCTMEPLATE使其SQL可配置

2.更好的支持不同的数据库的物理分页SQL,见MySQLDialect ,OracleDialect

3.实现SQL配置的在线热部署

4.简化缓存的配置:SQL查询结果根据SQLKEY进行缓存,

5.使用MAP,LIST作为返回结果的数据类型,保证能很好的转化为JSON数据格式与前端UI交互

6.查询部分的API (ORM功能可以由JPA+HIBENATER来实现)

7.新增单表增删改功能:save (String beanName, Map<String, Object> param)

beanName对应的是表名,举例:custChannelPlan

param 对应的是字段名,举例:{planId :'1' , contact :'111'}

举例:custChannelPlan ---> cust_Channel_Plan 表字段:(plan_Id varchar2(10), contact varchar2(10));

最后执行SQL: INSERT INTO cust_Channel_Plan (plan_Id , contact ) VALUES ( '1' , '111');

updateTable (String beanName,String prefix, Map<String, Object> param)

delete (String beanName,String prefix, Map<String, Object> param)

/sqlservice/custChannelPlan?planId=1&contact=1111 POST提交对应新增INSERTjs调用:$.ajax({url: '/sqlservice/custChannelPlan?planId=1&contact=1111',type: 'post'});


/sqlservice/custChannelPlan?planId=1&contact=1111 GET提交对应查询SELECTjs调用:$.ajax({url: '/sqlservice/custChannelPlan?planId=1&contact=1111',type: 'get'});


/sqlservice/custChannelPlan?planId=1&contact=1111 PUT提交对应更新UPDATEjs调用:$.ajax({url: '/sqlservice/custChannelPlan?planId=1&contact=1111',type: 'put'});


/sqlservice/custChannelPlan?planId=1&contact=1111 DELETE提交对应删除DELETEjs调用:$.ajax({url: '/sqlservice/custChannelPlan?planId=1&contact=1111',type: 'delete'});

详细的代码案例见MyJdbcTest :

1.分页查询

2.代码热部署

3.缓存策略

缺点:不具备ORM功能


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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