hibernate进行多表联合查询
hibernate是按照hql语句来进行查询的, 里面所使用的表名, 其实是实体类的名字, hql语句的写法并没有多大差别, 是在返回结果的时候要稍微做一些处理
//使用hibernate进行多表查询, 返回一个list
public List<?> getHfxx(BigDecimal id) {
String hql = "select a.xchfsj,a.khjb,a.khly,b.jhhffs from CmKhxxb a,CmKhgzxxb b where a.khbh=b.khbh and a.id="+id;
List<?> list = hiberTem.find(hql);
return list;
}
以上是查询的方法, 返回了一个list, 接收数据的方法在下面
//点击回访客户, 返回客户信息表, 与上面的方法差不多, 只是返回给不同的标签
@ResponseBody
@RequestMapping(value="/getCmKhxx.do", method=RequestMethod.POST)
public String getCmKhxx(@RequestParam(value="khid")String khid) {
String json = "{\"success\":";
BigDecimal bId = new BigDecimal(khid);
List<?> list = cmKhxxbDao.getHfxx(bId); Iterator<?> iter = list.iterator();
HashMap<String, String> map = null;
while(iter.hasNext()) {
Object[] o = (Object[])iter.next();
if(o!=null) {
map = new HashMap<String, String>();
String hfsj = "";
try {
hfsj = DateFormat.getStringDate((Date)o[0]);
} catch (ParseException e) {
e.printStackTrace();
}
map.put("xchfsj", hfsj);
map.put("khjb", (String)o[1]);
map.put("khly", (String)o[2]);
map.put("jhhffs", (String)o[3]);
}
} if(map==null) {
json += "false}";
} else {
json += "true,\"action\":";
json += JSON.toJSONString(map);
json += "}";
}
return json;
}
在返回的这个list当中, 其实每一个对象都是按照你所写的select后面的字段名的顺序来的, 进行强转可以转换成功, 因为我是用的springMVC, 所以用了一个map来接收, 再进行JSON的转换传给前台, 上面代码中的 DateFormat 是自己写的一个日期转换的静态类, Date型的数据从数据库中取来是一个时间戳的形式, 需要先转换
hibernate进行多表关联查询有一点需要注意, 如果有一个表中没有数据, 而在hql中加上了a.khbh = b.khbh诸如此类的条件, 返回的list就成了空
hibernate进行多表联合查询的更多相关文章
- hibernate实现多表联合查询
转自:http://blog.sina.com.cn/s/blog_67b9ad8d01010by1.html 以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hiber ...
- hibernate 多表联合查询
以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...
- mybatis:开发环境搭建--增删改查--多表联合查询(多对一)
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...
- yii 多表联合查询的几种方法
yii多表联合查询, 第一种,用command,自己拼接sql语句执行查询 第二种,用AR,model需继承下面的ar,执行queryall或queryrow方法 <?php //applica ...
- MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例
有二三年没写代码了,**内的工作就是这样,容易废人!看到园子里这么多大侠朝气蓬勃的,我想也要学点东西并和大家分享,共同进步!快乐每一天,进步每一天!言归正传! 通过最近一段时间对MVC5.EF6的学习 ...
- Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新
CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...
- SharePoint 2013 列表多表联合查询
在SharePoint的企业应用中,遇到复杂的逻辑的时候,我们会需要多表查询:SharePoint和Sql数据表一样,也支持多表联合查询,但是不像Sql语句那样简单,需要使用SPQuery的Joins ...
- MyBatis 多表联合查询及优化 以及自定义返回结果集
下面就来说一下 mybatis 是通过什么来实现多表联合查询的.首先看一下表关系,如图: 这 里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring + MyBatis,当然,为了 ...
- 一步步学Mybatis-实现多表联合查询(4)
上一章节中我们已经完成了对单表的CRUD操作,接下来今天这一讲讲述的是关于Mybatis在多表查询时候的应用,毕竟实际业务中也是多表的联合查询比较多嘛~ 还记得最一开始我们新建过一张Website表吗 ...
随机推荐
- IIS:日志代码分析
如何看IIS日志代码,打开IIS日志后,你会看见里面有很多访问记录.baiduspider,Googlebot等就是蜘蛛了.蜘蛛爬过后都会留下记录的,状态代码列在下面: 100 - 表示已收到请求的一 ...
- bzoj3087: Coci2009 misolovke
Description [misolovke]给定一个 N*N 的网格.每个格子里至少会有一个捕鼠器, 并且已知每个格子里的捕鼠器个数.现在需要在 每一行 中选取恰好 K 个连续的格子, 把里面的捕鼠 ...
- 为什么学习Ruby On Rails:
简单总结了一下自己为什么喜欢ruby on rails: 语法简单,写代码很愉快,比较接近伪代码: 喜欢其强大的正则表达式和字符串操作. ruby中面向对象更自由,更动态: ruby给人信任,相信你了 ...
- Java 大数运算
import java.util.*; import java.math.*; public class Main{ public static void main(String args[]){ S ...
- java语言实现堆排序
package secondChapter; import java.util.Random; public class HeapSort { private static int AHeapSize ...
- #ifdef #ifndef使用
#ifdef THREAD_ON while (TRUE) #endif 如上没定义THREAD_ON时,是不会跑到while中去的 如上没定义THREAD_ON时,是会跑到else中去的 #ifnd ...
- Js 扩展
计算字符串的字节长度 String.prototype.len = function () { return this.replace(/[^\x00-\xff]/g, 'xx').length; } ...
- php disk_free_space与disk_total_space实例介绍
php disk_free_space 函数与disk_total_space 函数教程,第一个函数是指函数返回的空间,以字节为单位,在指定的目录,而disk_total_space 函数返回的总空间 ...
- 创建线程方式-GCD
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Website Speed Optimization Guide for Google PageSpeed Rules
原链接地址:http://www.artzstudio.com/2016/07/website-speed-optimization-guide-for-google-pagespeed-rules/ ...