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进行多表联合查询的更多相关文章

  1. hibernate实现多表联合查询

    转自:http://blog.sina.com.cn/s/blog_67b9ad8d01010by1.html 以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hiber ...

  2. hibernate 多表联合查询

    以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQ ...

  3. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  4. yii 多表联合查询的几种方法

    yii多表联合查询, 第一种,用command,自己拼接sql语句执行查询 第二种,用AR,model需继承下面的ar,执行queryall或queryrow方法 <?php //applica ...

  5. MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例

    有二三年没写代码了,**内的工作就是这样,容易废人!看到园子里这么多大侠朝气蓬勃的,我想也要学点东西并和大家分享,共同进步!快乐每一天,进步每一天!言归正传! 通过最近一段时间对MVC5.EF6的学习 ...

  6. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

  7. SharePoint 2013 列表多表联合查询

    在SharePoint的企业应用中,遇到复杂的逻辑的时候,我们会需要多表查询:SharePoint和Sql数据表一样,也支持多表联合查询,但是不像Sql语句那样简单,需要使用SPQuery的Joins ...

  8. MyBatis 多表联合查询及优化 以及自定义返回结果集

    下面就来说一下 mybatis 是通过什么来实现多表联合查询的.首先看一下表关系,如图: 这 里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring + MyBatis,当然,为了 ...

  9. 一步步学Mybatis-实现多表联合查询(4)

    上一章节中我们已经完成了对单表的CRUD操作,接下来今天这一讲讲述的是关于Mybatis在多表查询时候的应用,毕竟实际业务中也是多表的联合查询比较多嘛~ 还记得最一开始我们新建过一张Website表吗 ...

随机推荐

  1. Struts2通配符问题(待解决)

    目录结构如下: 运行结果: 为什么会访问input.jsp?不应该是访问emp-input吗?

  2. mysql:字符串转换为日期类型

    函数:DATE_FORMAT http://www.w3school.com.cn/sql/func_date_format.asp

  3. Codeforces 721D [贪心]

    /* 不要低头,不要放弃,不要气馁,不要慌张. 题意: 给一列数a,可以进行k次操作,每次操作可以选取任意一个数加x或者减x,x是固定的数.求如何才能使得这个数列所有数乘积最小. 思路: 贪心...讨 ...

  4. Blackfin DSP(五):BF533的SPI接口

    533SPI的特性 最高速度可达SCLK/4: 支持主模式和从模式: 可使用8个GPIO口作为从选择线: 1 slave select input pins 7 slave select output ...

  5. 升级正版win10及保持yosemite双操

    因为有同事升级了正版的win10,心头长草了,本来x230的win7就是正版,现在win10可以免费升级,为何不做? 为此跑了2趟lenovo的维修站,诸多限制,最终决定自己搞定.据说,需要恢复到原厂 ...

  6. [转]CABasicAnimation用法

    CABasicAnimation用法   CABasicAnimation 自己只有三个property   fromValue  toValue  ByValue 当你创建一个 CABasicAni ...

  7. Symfony2 通过命令行调用控制器

    由于系统需求,需要写一个无限循环的控制器,那么既然有一个无限循环的控制器,那么就需要有一个开关,不可能直接通过route来开启吧.当然要使用高级一点的方法啊. 那就是使用控制台通过命令行(comman ...

  8. nginx for linux安装及安装错误解决

    nginx:下载地址:http://www.nginx.org/ 1.GCC编译器 安装指令 :yum  install -y  gcc 如果你所使用的是ubuntu,则安装指令为:apt-get i ...

  9. 图片form表单提交和id提交

    <form action="${pageContext.request.contextPath }/sarchServlet" method="post" ...

  10. pgadmin中的备份功能消失的原因和找回方法

    pgadmin在正常情况下,在左侧的[对象浏览器]中选中数据库.模式或者表时,右键会出现[备份]和[恢复]的选项(除早期不支持该功能的版本外). 如: 当然,有时候有人会发现,当你想要用这些备份还原功 ...