多表连接一
来源:互联网 发布:什么是java servlet 编辑:程序博客网 时间:2024/06/13 09:35
package com.rey.controllers;import com.rey.entities.UserEntity;import com.rey.entities.UserResult;import org.apache.log4j.Logger;import org.apache.poi.util.SystemOutLogger;import org.hibernate.SessionFactory;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import java.util.ArrayList;import java.util.List;import java.util.Map;/** * Created by psq on 2016/8/16. */@RestController@RequestMapping(value = "/common")public class CommonController { private Logger logger = Logger.getLogger(CommonController.class); @Resource private SessionFactory sessionFactory; /** * 搜索模糊匹配查询 * @return */ @RequestMapping(value = "/search",produces = "application/json; charset=utf-8") @Transactional(propagation = Propagation.REQUIRED,readOnly = true) public ModelAndView getSearchInfo(HttpServletRequest request){ logger.info("begin getSearchInfo"); String selectorName = request.getParameter("comBox"); logger.info("selectorName:"+selectorName); ModelAndView mv = new ModelAndView(); String keyWord = request.getParameter("keyWord"); if(selectorName.equals("author")){// StringBuffer lookHql = new StringBuffer("from UserEntity where authorName = '");// lookHql.append(keyWord).append("'"); StringBuffer author = new StringBuffer("SELECT\n" + "\tq_user_tbl.area_name,\n" + "\tq_user_tbl.author_id,\n" + "\tq_user_releation_tbl.AuthorName,\n" + "\tq_user_releation_tbl.RelationType,\n" + "\tq_user_releation_tbl.RelationAuthorName,\n" + "\tq_author_pai_tbl.PaiName,\n" + "\tq_author_work_tbl.workName\n" + "FROM\n" + "\tq_user_tbl,\n" + "\tq_user_releation_tbl,\n" + "\tq_author_work_tbl,\n" + "\tq_author_pai_tbl\n" + "WHERE\n" + "\tq_user_tbl.author_id = q_user_releation_tbl.AuthorID\n" + "AND\tq_user_releation_tbl.AuthorID = q_author_work_tbl.author_id\n" + "AND q_author_work_tbl.author_id = q_author_pai_tbl.AuthorID\n" + "AND q_user_releation_tbl.AuthorID IN ("); author.append("SELECT\n" + "\t\tauthor_id\n" + "\tFROM\n" + "\t\tq_user_tbl\n" + "\tWHERE\n" + "\t\tauthor_name = '"); author.append(keyWord).append("');");// UserEntity user= (UserEntity)sessionFactory.getCurrentSession().createQuery(lookHql.toString()).setMaxResults(1).uniqueResult();// List<UserEntity> userList = sessionFactory.getCurrentSession().createQuery(lookHql.toString()).list();// List<Map<String,Object>> userList = sessionFactory.getCurrentSession().createQuery(author.toString()).list(); List<Object[]> tempUserList = sessionFactory.getCurrentSession().createSQLQuery(author.toString()).list(); List<UserResult> userList = new ArrayList<UserResult>(); for (Object[] object : tempUserList) { UserResult userResult = new UserResult(); userResult.setAreaName(object[0].toString()); userResult.setAuthorID(Integer.parseInt(object[1].toString())); userResult.setAuthorName(object[2].toString()); userResult.setRelationType(object[3].toString()); userResult.setRelationAuthorName(object[4].toString()); userResult.setPaiName(object[5].toString()); userResult.setWorkName(object[6].toString()); userList.add(userResult); } int count=1; while(count<userList.size()){ int authorId = userList.get(count-1).getAuthorID(); int authorId1 = userList.get(count).getAuthorID(); if(authorId==authorId1){ String relationType = userList.get(count-1).getRelationType(); String relationType1 =userList.get(count).getRelationType(); StringBuffer type = new StringBuffer(); StringBuffer name = new StringBuffer(); if(relationType.equals(relationType1)){ }else { type.append(relationType1); } } } UserResult test = new UserResult(); test.getAreaName(); logger.info("userList:"+userList); logger.info("end getSearchInfo:" + keyWord); if(userList.size()>0){// 传结果对象 mv.addObject("userList",userList);// 设置跳转的视图对象 mv.setViewName("result"); }else{ mv.setViewName("error"); } } else if(selectorName.equals("pai")){ } else if(selectorName.equals("work")){ } else if(selectorName.equals("area")){ } return mv; }}
0 0
- 多表连接一
- MySQL多表连接优化一例
- 表的连接(一)
- oracle表连接(一)
- hibernate基于连接表的多对一单向关联
- 多对一关联(无连接表)
- PostgreSQL的查询语句的连接方式与查询计划比较--多表连接(一)
- 表的自连接一例
- 数据库查询中的表连接(一)
- Hibernate关联关系配置-----基于连接表的双向一对多/多对一映射配置
- MyBatis--关联关系查询--多对一--多表连接查询
- Hibernate和JPA使用连接表处理多对一映射
- Hibernate关联映射之-单向多对一关联(无连接表)
- Hibernate关联映射之-单向多对一关联(连接表)
- hibernate之关于使用连接表实现多对一关联映射
- MySQL多表连接过程中自动创建索引一例:
- 【Oracle】多表连接查询——内连接、左连接、右连接、全连接(外连接)、完全连接
- 动态连接库(一)
- vp9 命令行参数
- 详解 CSS 属性 - 伪类和伪元素的区别
- 1005 Number Sequence
- 项目发布: error CS0103: 当前上下文中不存在名称“*****”
- 最详细的 NavigationDrawer 开发实践总结(下)
- 多表连接一
- 1008 Elevator
- 你需要知道的 Android 拍照适配方案
- 进程的通信方式及特点
- 实施ERP系统,企业必须清晰的几个问题
- 待研究列表
- 1012 u Calculate e
- 暑假集训 8.19 图结构练习——判断给定图是否存在合法拓扑序列 sdut2140
- IndexOutOfBoundsException: Inconsistency detected. Invalid item position