抽取数据库查询抽取和分页抽取和数据回显问题
来源:互联网 发布:找数据 编辑:程序博客网 时间:2024/06/03 16:56
通过基础的数据库操作,在后期学习中多次使用从而方法不满足,抽取成工具
先是进行了条件查询,从而引出QueryHelper的工具类
QueryHelper:(为防止操作失误,选择传入类对象并赋予别名)
1.对问题进行分析即两个模块,①获取到hql语句②获取参数值
2.对①进行细分 第一步 from子句必须有,放入构造方法。 第二步 where子句 (1.n)写入方法addCondition(String condition, Object... params) {}②同时导入参数(查询字段)if (parameters == null) {parameters = new ArrayList<Object>();}if (params != null) {for (Object param : params) {parameters.add(param);} 第三步 order By .. desc/asc 排序方式addOrderByProperty(String property, String order) {}使用方式: QueryHelper queryHelper = new QueryHelper(Info.class, "i");//确定查询的对象类型if (info != null) {if (StringUtils.isNotBlank(info.getTitle())) {info.setTitle(URLDecoder.decode(info.getTitle(),"utf-8"));//重定向回来,条件处于被浏览器加密。揭秘呈现在浏览器上queryHelper.addCondition("i.title LIKE ?","%" + info.getTitle() + "%"); //查询Info对应表的title字段,采用模糊查询的方式}}queryHelper.addOrderByProperty("i.createTime",QueryHelper.ORDER_BY_DESC); //添加排序的依据和排序方式 已createTime列为标准排序 方式为降序pageResult = infoService.getPageResult(queryHelper,getPageNo(),getPageSize());//下面会说到
下午
上午遗留问题:查询条件的回显问题
1.在页面跳转addUI.action和editUI.action时遗失查询条件
2.跳转回listUI.action时。丢失查询条件
解决方式:① Action 中维护一个 strName的String 对象;在进行增加和编辑时 保存需要的内容 如: strName = user.getName(); //在进行数据库操作前
② 在配置文件中当页面返回请求是list时 进行重定向。
<result name="list" type="redirectAction">//类型重定向<param name="actionName">role_listUI</param>//跳转的action <param name="role.name">${strName}</param>//保存查询条件的内容 并赋予给该显示的地方<param name="encode">true</param>//为防止中文乱码问题,请求提交进行密保即%155%等 格式 </result>为了防止当前页数为5 而查询出来结果显示错误。在查询方法内加入$("#pageNo").val(1);!!
问题:页面查询出来结果需要进行分页
创建PageResult类 变量有 totalCount//结果总数 pageNo//当前页数 pageSize//页面大小 totalpageCount页面总数 items页面列表(数据保存处)
配个上午的QueryHelper 查询出筛选后的内容 即query 返回一个PageResult对象 页面通过 pageResult.items 获取列表 再进行遍历即可。
if(pageNo<1) pageNo = 1;//设置开头query.setFirstResult((pageNo-1)*pageSize);//设置每页最大数量query.setMaxResults(pageSize);//设置返回的列表List items = query.list();//获取总数Query countQuery = getSession().createQuery(queryHelper.getCountHql());if (parameters!=null) {for (int i = 0; i < parameters.size(); i++) {countQuery.setParameter(i, parameters.get(i));}} Long totalCount = (Long)countQuery.uniqueResult();return new PageResult(totalCount, pageNo, pageSize, items);可以获取结果,编队JSP进行抽取在列表页面添加标签<jsp:include page="/common/pageNavigator.jsp"></jsp:include>。在JSP中可以不只一个代码块在抽取的列表下 进行<script type="text/javascript">代码块执行方法
值得注意的是如何在抽取的JSP中被调用的JSP访问正确的action 可以在原有界面定义 list_url 常量 在公共页面只需调用document.forms[0].action = list_url;即可
课下作业:对原有系统进行改造。把User 和 Role 进行相同的查询与操作!
阅读全文
0 0
- 抽取数据库查询抽取和分页抽取和数据回显问题
- Kettle数据同步和抽取
- 数据抽取问题记录
- 数据质量管理--数据抽取和清洗
- service和serviceImpl抽取
- 数据抽取
- ETL数据抽取、转换和加载
- ETL:数据的抽取、转换和装载
- 数据抽取方式和各方式特点
- Kettle数据抽取---增量抽取
- 网页抽取技术和算法
- JavaFX和可视化信息抽取
- 7.3 抽取和内插滤波器
- TextRank, 关键词和句子抽取
- 什么是数据抽取 --全量抽取、增量抽取
- alfresco 文件转换和元数据的抽取
- SSRS Reporting Service 报表参数和数据集信息抽取
- Python 爬虫 正则抽取网页数据和Scrapy简单使用
- 机器学习资料
- http协议
- 划分树入门
- 阿里笔试(二)
- JAVA可视化插件的使用
- 抽取数据库查询抽取和分页抽取和数据回显问题
- Android攻城狮的第二门课(第1季)第2章 使用ListView显示信息列表
- 【23种设计模式】行为型模式 > 观察者模式
- 结构体
- java面向对象/多态
- SpringMVC框架中文乱码解决方案
- windows server 2008搭建NTP时间服务器和客户端
- GPUImage学习日记(1)
- 贪心、动态规划之删数问题2072