[jeeplus] 使用笔记 (gridSelect、datetimepicker etc.)
本贴最后更新于 2008 天前,其中的信息可能已经时过境迁
相关帖子
请输入回帖内容
...
- 其他回帖
-
PeterChu • • 1 评论作者
Mysql 中对一个表中的字段进行汇总计算后 赋值给 其中一个字段
如:招生计划表中,按照年份、省份、批次、文理科、学校 分组汇总后,将各专业招生计划数汇总后,赋值给该校该年度该批次该省份该文理科中的 招生计划总数。
查询语句:
SELECT COUNT(zhaoshengjihua) AS jihuazongshu, zhaoshengjihuazongshu, shengfen, nianfen, wenlike, pici, daxuedaima, daxuemingcheng FROM d_zhaoshengjihuabiao GROUP BY shengfen, nianfen, wenlike, pici, daxuedaima;
*zhaoshengjihuazongshu 字段中已经被赋值了,原来该字段中的值为空最开始写出的 sql 如下,但是完全不正确。
UPDATE d_zhaoshengjihuabiao a SET a.zhaoshengjihuazongshu = ( SELECT COUNT(b.zhaoshengjihua) AS b.cou, b.shengfen, b.nianfen, b.wenlike, b.pici, b.daxuedaima FROM d_zhaoshengjihuabiao b GROUP BY b.shengfen, b.nianfen, b.wenlike, b.pici, b.daxuedaima ) WHERE b.shengfen = a.shengfen AND b.nianfen = a.nianfen AND b.wenlike = a.wenlike AND b.pici = a.pici AND b.daxuedaima = a.daxuedaima
在网上搜索后,看到如下 2 条 sql 做为参考:
-- 1 UPDATE au_window_re_project aw SET aw.project_name = ( SELECT ap.SERVICENAME FROM apas_service ap WHERE ap.unid = aw.PROJECT_ID ) -- 2 UPDATE test_user_points AS a LEFT JOIN ( SELECT user_id, sum(point) AS point_count FROM test_point_log GROUP BY user_id ) AS b ON a.user_id = b.user_id SET a.point_count = b.point_count
最终参考第 2 条 SQL 写出如下语句,可以实现要求:
UPDATE d_zhaoshengjihuabiao AS a LEFT JOIN ( SELECT COUNT(zhaoshengjihua) AS cou, shengfen, nianfen, wenlike, pici, daxuedaima FROM d_zhaoshengjihuabiao GROUP BY shengfen, nianfen, wenlike, pici, daxuedaima ) AS b ON ( a.shengfen = b.shengfen AND a.wenlike = b.wenlike AND a.nianfen = b.nianfen AND a.pici = b.pici AND a.daxuedaima = b.daxuedaima ) SET a.zhaoshengjihuazongshu = b.cou ;
最开始的 SQL 还不知道错在了哪里,应该是用子查询实现的呀PeterChu • -
PeterChu •作者
Recognize when is the app first launched WP8 | 易学教程
下面是以配置清单列表中的增、改表单中的后期加上去的 gridSelect 选择框为例,简单说一下加的流程。
//示例代码片段 <sys:gridselect id="proManage" //对象名(可以随便取) url="${ctx}/pro/proManage/data" //gridselect选择框请求数据的url name="proManage.id" //gridselect弹出框选择数据后将 对象名.属性(java属性)的值,替换掉from表单中隐藏input框中的要提交的关联属性(我这里是项目id) value="${proManage.id}" //回显隐藏from表单input中的要提交的关联属性值 labelName="proManage.name" //选择gridselect框中的数据后,会将该 对象名.属性(Java属性) 的值在form表单中的显示的input框中回显 labelValue="${proManage.name}" //打开窗口后回显该 对象名.属性名到form表单中 title="选择项目" //弹出框的title cssClass="form-control required" //样式 fieldLabels="项目编号|项目名称" //gridselect框中表格的列名称 fieldKeys="proCd|name" //gridselect框中表格对应的列要显示的那个字段的值(java属性) searchLabels="项目编号|项目名称" //gridselect框中查询框前的文本值 searchKeys="proCd|name" > //gridselect框中根据该字段查询数据(查询规则在 代码生成器的表单规则内设置的是保持一致的) </sys:gridselect>
具体属性解释
下面试大致过一下框架对这个标签的执行流程,具体的需要自己去看和理解,我粗略的注释一下
<sys:gridselect 这里使用的jsp的自定义标签,这个标签在jeeplus的如下目录中。
sys 自定义标签的位置如下
这里要看的是
gridselect.tag
标签的执行流程。1.解析 tag 自定义标签
2.跳转自定义标签后台,它跳到了 modules/common/gridselect 页面
3.gridselect.jsp 页面
4.它自定义标签的执行过程看懂了就很容易理解各个属性的含义是做什么,有什么不懂可以再相互讨论
-
PeterChu •作者
慎用
select *
当自己手写一些 sql 时,如果查找的对象/表中有封装了其他对象,那么,当 sql 中有
select *
时会导致封装对象为 Null 的现象。
因此,如果有会使用到封装的对象,那么 xml 中的 sql 还是加上映射关系吧。
eg:<!-- 根据年份、省份、高校、文理科、批次查找记录 findListByYPNWB --> <select id="findListByYPNWB" resultType="Eucode" > SELECT <include refid="EucodeColumns"/> FROM e_uecode a <include refid="EucodeJoins"/> WHERE a.year = #{year} AND a.province = #{province.id} AND a.universityid = #{university.id} AND a.wltype = #{wltype} AND a.schoolbatches = #{schoolBatches} AND (a.r3 != "2" OR ISNULL(a.r3)) AND (a.r3 != "3" OR ISNULL(a.r3)) </select>
- 查看全部回帖