基于springjdbc封装的javaee轻量级开发平台jmapper(一)
来源:互联网 发布:传智播客java视频下载 编辑:程序博客网 时间:2024/06/10 03:40
时光飞逝,转眼作为coder已经快3年了,积累了一些码代码的经验(主要还是javaweb方面),但是有时候还是会感觉到有些杂和乱。需要总结和升华,正好趁现在不是很忙写点东西,分享下coding方面的一些小小的感悟和代码。
javaweb项目开发现在比较流行的开源框架组合就是struts2/springmvc+hibernate/mybatis+spring ,使用框架的好处是显而易见的,提高开发效率,使系统的可维护性提高。而且开源框架有很多的社区和用户群所以一般性的问题都可以很轻松的找到解决方案。下面主要说下数据访问层的框架,因为jmapper就是结合了hibernate和mybatis优点的一个数据访问层框架(暂定为框架)。首先说下hibernate,个人认为hibernate主要的优点就是完全的orm映射在做更新,插入或单表查询特别的方便,例如hibernate可以用get或load方法很方便的加载一个数据库映射的对象或已经缓存的对象,在做更新操作的时候只需在service层获得要更新的持久化对象然后set相关字段就可以实现更新;hibernate的缓存和延迟加载可以说是优点但同时也是缺点,因为对于不熟悉hibernate的coder来说很容易产生一些莫名其妙的错误;还有就是hibernate的hql,在复杂的业务系统里就略显鸡肋了,对于开发人员来说能够熟练掌握hql需要投入很多时间,学习成本很高。再看mybatis,mybatis现在越来越受一些复杂业务系统,互联网企业的青睐。mybatis和hibernate的的最大区别是mybatis是sql的映射,sql的控制权完全在开发者手中,可以充分的发挥sql技巧,mybatis的sql还可以写在xml或注解里,这样更利于维护sql和优化sql,而hibernate要想优化sql的话就会很麻烦了,美中不足的是mybatis没有像hibernate那样整表的映射,因此写插入,更新,单表查询等操作的时候还是需要写sql语句。接下来介绍一下jmapper ,jmapper是本人在吸收hibernate和mybatis部分优点,然后在springjdbc的基础上进行封装的一个模块儿(jmapper-core),主要的特点就是实现了sql和代码的分离,sql中支持freemarker语法和占位符命名参数,同时实现了整表的映射,方便插入和更新(调用save方法就可将实体类插入数据库),而且还提供了一些辅助的工具方法,而且完全兼容springjdbc的使用。下面是代码:
svn地址:http://code.taobao.org/svn/jmapper/
github地址:
感兴趣的看客可以把core和demo(两个项目有依赖关系)的代码导入到maven环境的eclipse中运行
数据库用的是mysql,sql脚本在demo项目下。数据库的配置文件在此
https://github.com/zzcoding/jmapper-core
https://github.com/zzcoding/jmapper-demo
演示demo地址:http://101.200.196.226:8080/jmapper-demo/new
接下来会介绍下jmapper的原理和用法配置等(未完待续)
- 基于springjdbc封装的javaee轻量级开发平台jmapper(一)
- LtGUI-开发基于WinCE平台的轻量级GUI框架(一)
- JEasyFrame,一款基于SSH的轻量级JavaEE开发框架
- javaEE的轻量级开发框架SSH的编程技术
- JDBC的项目开发实例<轻量级封装>
- 基于JCreator的轻量级Java Web开发平台的搭建全攻略
- 基于JCreator的轻量级Java Web开发平台的搭建全攻略
- 小码农的代码(一)----------SpringJDBC的使用
- 在Eclipse开发平台上运行基于JavaEE的项目程序
- JavaEE——基于Servlet的会话跟踪(一)
- 基于struts+spring+ibatis的轻量级J2EE开发(转载)
- openresty 前端开发轻量级MVC框架封装一(控制器篇)
- 轻量级JavaEE企业应用实战(一)
- 基于C++的跨平台的轻量级日志类
- 轻量级JavaEE开发框架Spring知识总结
- 轻量级的封装
- 基于JavaEE&&移动平台的企业级房地产ERP采购系统
- 基于LeanCloud平台的REST API封装
- https原理及tomcat配置https方法
- Android_LoaderManager获取联系人
- 怎样写一个增广矩阵到txt文件中
- wowza 配置自己的VOD-Edge 实现一个vod点播
- CSS
- 基于springjdbc封装的javaee轻量级开发平台jmapper(一)
- C++作业5
- Android WebView 不支持 H5 input type="file" 解决方法
- ubuntu下的hadoop安装
- session 和 cookie
- android Layout技巧汇总
- 修改tomcat默认页面
- Leetcode 9. Palindrome Number
- 人数不定的工资类