首先,自我介绍下吧:本人从事java软件开发,工作2年,不属大牛。
背景:最近闲来无事,想起上家公司的开发框架不错,想按照那框架思路自己实现一个(当然只是大致思路差不多,本人写的代码不敢恭维)。同时也是借博做个笔记,希望各位同仁不要“喷”我。
大致介绍下我实现的内容吧:
一。数据库层的查询实现。由于是毕业后进入那家公司,当时本人技术不行,看见公司框架的数据库层查询即支持hibernate的HQL查询也支持JDBC的sql查询很是感兴趣,所以研究了一下。所以自己也是按照该公司框架思路去实现。
// 在DAO层的实现类中的方法统一返回一个HQLInfo类型
//方法中传入一个封装了查询条件的值的类型
public HQLInfo queryRole(RoleDto dto) { StringBuffer bf=new StringBuffer(); bf.append(" from Role a "); bf.append(" where 1=1 ");
//sql中查询条件的值通过“:+属性名”的形式,该属性名与封装了查询条件的值的类型的其中某个属性名一致 bf.append(" and a.roleName= :roleName"); bf.append(" and a.roleDesc= :roleDesc"); bf.append(" order by a.roleId desc "); //通过HQLInfoHelper帮助类来格式化一下sql语句
String sql=HQLInfoHelper.formatSQLStr(bf.toString()); //获取属性名字符串数组
String[] params=HQLInfoHelper.getParaNames(sql); //开始封装HQLInfo
HQLInfo info=HQLInfoHelper.getHQLInfo(sql, params, dto); return info; }
通过上面的方法将返回的HQLInfo对象系统就能做查询。
二。关于事务。该原框架里的事务都是手动开启和提交,回滚的。本人比较懒,就直接用spring得事务管理实现。
三。关于页面中的树形菜单。本人采用jquery ztree2.6实现。
四。关于页面数据查询后的展示。由于不知道原框架是采用的什么GRID实现,本人采用jquery的flexigrid实现。对于flexigrid还有很多不足,本人也是做了很多修改。
以上是本人在实现自己框架中觉得还是比较注重的地方。目前只是大致说下,以后会进行更详细的说明。
后话,本人不才,语言能力不强!望大家见谅~