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就成了空

最新文章

  1. Ubuntu 14.04 中 安装elasticsearch2.*+logstash2.*+kibana
  2. 【HDU 5858】Hard problem
  3. Linux使用du和df查看磁盘和文件夹占用空间
  4. 为什么在使用get时,Properties对象总是忽略默认值?
  5. System.MissingMethodException: 找不到方法:
  6. 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题
  7. IIS7下w3wp.exe进程CPU100%问题解决办法
  8. Android开发UI之ViewPager及PagerAdapter
  9. 6.4 Schema 设计对系统的性能影响
  10. Kafka安装配置
  11. Python之io概念
  12. [Flutter] lib/main.dart:1: Warning: Interpreting this as package URI, &#39;package:flutter_app/main.dart&#39;.
  13. oracle与mysql
  14. 软工网络15团队作业4——Alpha阶段敏捷冲刺4.0
  15. vmware安装centos问题
  16. 服务注册发现consul之三:服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
  17. vue启动时报错,node-modules下xxx缺失
  18. default(T) 和 typeof 和 GetType()
  19. 03——Solr学习之Solr的使用(不会用)
  20. Thread的start和run的区别

热门文章

  1. libcurl发起post请求时间延迟问题。except为空即可
  2. 6、java中的构造代码块
  3. Windows性能查看器:系统的性能信息(I/O,IIS最大连接数,Sql) ,以及解决 asp.net IIS 一二百多用户并发
  4. 关于oracle修复控制文件与数据文件不一致的问题----
  5. JavaScript中的Array
  6. C语言面试题
  7. 切服务器时请注意robots.txt文件
  8. (DP)3.Longest Substring Without Repeating Characters
  9. IDEA新建javaWeb以及Servlet简单实现
  10. JAVAWEB监听器(二)