多表联合查询后的结果的结果放入list里,如何拿出来

DaoImpl代码:

public List findstudentidList(int i){
String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and t.isfinaltopic = true and l.isdroped = true";
return this.getHibernateTemplate().find(hql,i);
}

Action代码:

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

控制台怎么输出这些:
a = gdms.bean.User@1298826
b = gdms.bean.TTopic@1a99836
c = gdms.bean.Log@148083b
a = gdms.bean.User@1298826
b = gdms.bean.TTopic@1f31ad9
c = gdms.bean.Log@18b4ccb

0

4个回答

如果说 根据多表查询只是查询的条件不同 而显示的数据还是一个表中的数据 这样的话 查询语句按SQL语句一样的写法 如果说 查询出数据要分别显示几个表中的信息的话 这个很麻烦 新建一个实体类 实体类的属性包含要显示数据的字段 然后只能按照原始的数据库连接读取数据 一个个的赋值 添加到List中

0

Hibernate取到的是未转型的Object,先转型,然后取bean中的属性值就可以了。例如:((User)arr[0]).getUserName()

0

String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and

这句话里面User u,表示了查出来的是对象

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

将对象取出来放到list里面 然后又一一读取放到object的数据里面 这一步有点多余! 为何不直接读取list 从list里面取呢?

arr[0]取到的还是对象 所以打印出来的是内存地址了!

0

DaoImpl代码:

public List findstudentidList(int i){
String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and t.isfinaltopic = true and l.isdroped = true";
return this.getHibernateTemplate().find(hql,i);
}

Action代码:

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

public List findstudentidList(int i){...

list = this.service.findListstudentid(user.getId());
中的findstudentidList findListstudentid 有问题吗1你能不能把正确的代码 贴出来呀

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
九、在多表联查中,批量删除
(一)案例背景   有三张表,菜单表“sys_menu”、动作表“sys_action”和分配动作表”sys_group_action”。其中动作表“sys_action”中有一个“menuId”字段,外键引用菜单表“sys_menu”,表示动作属于哪一个菜单。分配动作表”sys_group_action”主要有两个字段,“group_id”:用户组,“action_id”:动作,这张表表示该动...
【Hibernate】Hibernate多表查询后,将查询结果转化为实体
在《【Hibernate】Hibernate的多表查询》(点击打开链接)一文中,已经介绍过,如果利用HQL语句进行多表查询,摆脱查完一张表又取其中的结果再查另一张表的问题。然而,利用HQL语句查询出来的东西,是一个Object数组,我们要进一步对其处理,将其转化为表的实体的实例。 有如下的一个Java工程如《【Hibernate】Hibernate3.x独立运行时的Failed to load
SQL语句返回多表联合查询的结果集的数据条数
Everyderived table must have its own alias 这句话的意思是说每个派生出来的表都必须有一个自己的别名 一般在多表查询时,会出现此错误。 因为,进行嵌套查询的时候子查询出来的的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名 把MySQL语句改成:selectcount(*) from (select * from ……) a
SSH 多表联合查询结果集如何显示在JSP上
本文只是针对SSH框架下总结的,JSP上的显示使用struts标签与jstl标签。 先说解决思路:A类与B类进行联合查询,并且A类与B类还有一对多的关系。查询出来的结果,分别使用两个List接收。然后创建一个中间类C,此类用来接收A类及B类的集合(即List,这样A类与B类在C类中又有了一对多的关系。),将A类的List中的对象set至C类,与之相对应的B类先添加至一个List中,再将List
mysql两表联合查询并且将查询结果创建新表存进去
create table jieguo SELECT freebuf.title,freebuf.pub_time,freebuf.pub_week,freebuf.scan,freebuf.category,freebuf.summary,author.Author FROM freebuf INNER JOIN author ON freebuf.title = author.title;
多表联查,并且返回一个树形结构关系的List集合并且按时间顺序显示
先说明我遇到的问题如图(&quot;mqtt_disconnect&quot;是设备断开连接上传数据,数据点比较多。&quot;dev_online&quot;是重新连接没有对应多个数据点。从途中看到是一个list集合或者数组,因为“【】”): 下面说一下解决方案:刚刚开始我的思维逻辑是做个循环一点一点查询数据库,放到集合中,当我真正实现这个功能,我很郁闷,查询数据比较缓慢,不是一般的...
用hibernate 多表联合查询时每条记录返回的都是个对象数组
用hibernate 多表联合查询时每条记录返回的都是个对象数组,对象数组中的元素存放的才是表的对象。例如我上边的查询语句中用到了Outrecord ,Typeinfo 这两个表,返回list时list应该是个Object型的。 具体代码: for(int j=0;j Ob
hibernate面对多表查询返回装载Object对象的list的处理办法 (补16年12月)
涉及到多表查询,使用的是原生sql语句,返回值是list,但list装载的是Object对象,并不是实体对象,为了使用方便,添加了多表实体类,以下是关键代码         pageResearch() 是分页查询方法,limit是每页显示记录数,begin是第几页 List rockList = rockManager.pageResearch(hqlString.toS
将hibernate Query多表联合查询的结果集转换为POJO的方法
String hql = &quot;select bg.id as id,bg.groupId as groupId, b.id as businessId,&quot;+&quot; g.name as groupName,b.name as businessName&quot; +&quot; from Business b, Businessgroup bg, Groups g &quot; +&quot; where bg.groupId=g....
Hibernate 多表查询结果处理
Hibernate可以用在任何JDBC可以使用的场合,从某种意义上来说,Hibernate在任何场合下取代JDBC 如果我们在Hibernate中需要查询多个表的不同字段,那么如何来获取Hibernate多表查询的结果呢? 用如下方式,返回的结果集是以数组对象组成的集合 Query q = session.createQuery(" select members, classIn
hibernate 实现多表连接查询 查询结果映射到自定义类中
Hibernate主要支持两种查询方式:HQL查询和Criteria查询。前者应用较为广发,后者也只是调用封装好的接口。 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么解决呢? 举个例子: 现在有两个表,一个users用户表, 一个goods商品表,每个用户可以有多个商品,而一个商品只能对应一个用户。 users表中的字段:userId,userName,t
SQL多表联合查询
以两张简单的表为例,帮助理解多表联合查询: 一、外连接 外链接分为:左连接,右连接,完全外连接 1.左连接 left join或left outer join select * from student LEFT JOIN course ON student.id=course.id 左外连接包含left join左表所有行,如果左表中某行在右表
mysql下的多一表多结果的联合查询外加求和
今天在开发过程中,碰到一难题,通过代码可以简单解决,但是考虑到量多时的效率,想通过sql解决下: 题目如何: 有两张表,通过用户id关联, table1: CREATE TABLE `tbusiness_evaluation_report` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `userid` int(11) DEFAULT NULL
使用JdbcTemplate获取多表查询结果集并返回json数组
Spring中,JdbcTemplate的query方法的参数中实现RowMapper接口,可以将查询结果的每行映射为数据库表对应的EntityBean,并最终返回List&amp;lt;EntityBean&amp;gt;,这个属于基本运用,但实际应用往往是多表查询返回的结果集并非可以直接映射为表的实体类;另,jsp页面使用ajax返回结果为json字符串处理起来相对方便;下面记录一下sping JdbcT...
SQL 多表复合查询修改 update set select
SQL Server 多表复合查询修改 update t3 set t3.value = 0 from t1, t2, t3 where t2.id2 = t1.id1 and t2.id2 = t3.id3 and t3.id3 = 100 查询 t1 t2 t3 的关联信息,修改 t3 的一个字段。
ibatis连表查询出关联的所有数据
场景如下: 业务A中有多个表: T1,,T2,,T3,,T4。其中T1对T2 是1对n的关系,T2对T3是1对n的关系,T3对T4是1对1的关系 现在需要查询出T1及所有关联的数据,java bean描述如下: public class T1 { //...... private List lsT2; } public class T2{ //....... priva
mybatis中如何将多个表的查询结果,放入结果集中返回
首先需要将resultMap进行改造,为了避免对其他sql的影响建议另外定义一个resultMapExtral,避免id相同,然后在resultMapExtral中添加其它表的字段,若多个表中的字段名相同,要对查询结果和resultMapExtral中相同的字段另起别名,最后另外定义一个实体bean接收结果。 定义结果集: &amp;lt;resultMap id=&quot;BaseResultMapExtr...
超牛牪犇Java之HQL查询以及多表间的实体类配置文件写法
一.使用HQL语句查询数据1.查询所有对象记录@Test public void fun() { //使用HQL查询所有User记录 Session session = HibernateUitl.getOpenSession(); Transaction transaction = session.beginTransaction(); String hql = &quot;from ...
oracle多表关联查询结果集通过某一列进行去重
sql如下: SELECT   n.polno 保单号,        (SELECT np.uppercomcname       FROM ncdcompanycollation np        where np.comcode = n.managecomcode        and np.uppercomlevel = 'L2') 二级机构名称,        n.agentNo 保...
多表联查+去重的思路
多表联查+去重,咋办? 那就先分别去重,再用分别去重之后的表进行联查。 要查一个表里status='published'的,另一个表里的apk包名,想到了这样。 select core_item.id,core_item.title,capp.apkfile from core_item,(select item_id,apkfile from core_app where id in (s
多表联合查询语句
select dpt.*, info.*, gd.*, mat.* from depart as dpt left join info_sys as info on dpt.id = info.dept_name left join grade as gd on info.id = gd.grade left join material as mat on gd....
SpringBoot多表查询的实现
在SpringBoot中,建立一个与单表结构相同的实体类,用@Entity @Table(name="user") 建立ORM映射,用@Column(name="name")建立字段映射。就可以用CrudRepository很方便地查询数据库表。但是我们经常需要查询多表关联的数据。如,有这样两个表:user和level。user中存放用户基本信息,level存放用户等级信息,user表中包含有l
mysql distinct 去掉查询结果重复记录 可用于多张表连接查询
在项目中遇到了这个问题,研究了一下,觉得还是很有必要做一下笔记: DISTINCT 关键字解释 使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录,具体字段自己决定。 例子如下: 假设test_table表中有如下数据: SQL查询语句查询全部数据: SELECT DISTINCT(username) FROM test_table; 结果如下:
hibernate多表查询出结果转化为实体类
hibernate多表查询出结果后得到一个object对象,想用对象调用时会报object无法转化错误所以要将object转化为对象不知道有没有更好的方法,知道的请告知public List&amp;lt;ArticleContent&amp;gt; listToVO(List&amp;lt;Object&amp;gt; arlist){ List&amp;lt;ArticleContent&amp;gt; list = new Linke...
hibernate实现多表连接查询结果处理
Hibernate使用总结hibernate 实现多表连接查询结果处理因多表连接查询在项目中用的比较多,且查询结果集不与任何一个实体类对应,怎么解决呢?1,传统方式    查询并返回各个表的字段,调用query.List(),这个List是一个Object[]值,之后循环获取数组中的各个值,也就是说这里需要自己手动获取封装数据,基本代码如下: List result = q.list(); ...
Oracle 多表关联查询后修改
update t_veh_traffic_vio t set t.synchflag = 0, t.synchstatus = 'u' where t.wfsj > to_date('2014-04-01', 'yyyy-mm-dd') and t.wfsj < to_date('2014-05-01', 'yyyy-mm-dd'); update t_veh_traffic
解决 mysql多表联合查询时出现的分页问题
mysql一对多 多对多 分页问题 使用子查询方式 SELECT ft.id, ft.partner_id AS partnerId, ft.code , ft.end_update_date AS endUpdateDate, ft.name , ft.type , ft.a...
Ibatis的关联查询和关联结果
参考资料: ibatis配置多表关联(一对一、一对多、多对多)部门实体类定义: 员工实体类定义: 关联查询sqlMap.xml<sqlMap namespace="AUDIT_DEPARTMENT"> <typeAlias alias="auditDepartmentClass" type="com.cmsz.auditvces.system.model.AuditDepartment"
Mysql 多表查询结果增加序列号
先给出实现逻辑:SELECT (@i:=@i+1) as 序号,goods.* from goods LEFT JOIN stock_io ON goods.id = stock_io.goods_id LEFT JOIN (select @i := 0) as i ON 1=1;没做进一步分析,这样做是否影响性能。...
MyBatis:关联查询——一对多 多表连接、单独查询(详解resultMap)
我们现在数据库里有两个表:Country,Minister,我们现在通过查询Country的cid来得到Minister里的的信息。 两个表如图: Country Minister 一、多表连接查询: 创建接口: Country selectCountryById(int cid); country类 minister类 映射文件: 映射文件 测试类:
Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报: 2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log 信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast
Hibernate(JPA) 多表查询结果为Object,转为自定义实体类
实体:product @Entity public class Product { private String productNo; private String name; private String chandi; private ProductType productType; @Id public String getProductNo() { return pro...
对于多表联合查询Count函数返回NULL
SELECT id, msg_title, msg_type, content, start_tasktime, end_tasktime, create_psn, create_time, update_psn, update_time, STATUS, readNum, time_num, CASE release_status WHEN 0 THEN '未发布'...
mysql多表联合查询并统计
推广地点表promotion_addr字段:name,id电话报竣表unicom_record字段:date, sheet_id(关联sheet表id)报单表sheet字段:id,promotion_addr_id(关联promotion_addr表id)要求统计某个月已报竣各推广地点的推广个数; SELECTp.name, count(*)FROMunicom_record
Hibernate多表联查时,手动将结果集转化成JSON
今晚踩了一个坑,在此记录一下: 先看数据库,我们一共用3张表: 1、taone: 2、tatwo: 3、tathree: 我们的目标是: select a.age,b.name,c.sex from taone a,tatwo b,tathree c where a.id = b.id and b.age = c.age; Jav
SQL server2008 多表联合查询,分页显示结果
数据库两表联立查询所需数据,组合成新表,并结果以分页显示,例:     select * from (select  row_number() over(order by a.id desc) as             row,a.id,b.ProjectName,a.LastSavePerson,b.ApplyDept,a.MakingPerson,b.ProjectLevel,b.Pr
mybatis多表关联查询操作, 以及关联表中字段名重复问题,导致关联对象只封装一个对象的问题
user与role具有多对多关系1.mybatis多表关联查询操作user表 private String id; private String username; private String password; private String role; private Date birthday; 1)添加关联对象 //附加对象List p...
hibernate 联合查询返回多个对象--引用
一、 Hibernate简介Hibernate是一个JDO工具。它的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结
MySql多表查询分组查询,子查,分页查询
一.多表查询 查询每个雇员的编号,姓名,职位,工资,部门名称,部门位置。 SELECT e.empno,e.ename,e.job,e.sal,d.dname,d.loc FROM emp e,dept d WHERE e.deptno=d.deptno; 1.全连接 查询每个雇员的编号,姓名,职位,工资,部门名称,部门位置。 SELECT e.empno,e.ename,e...
loushang5关于多表关联查询结果,如何映射实体bean
//1.通过查询,返回结果为list(元素为map的list,map为所有查询结果字段的key:value映射) //2.遍历list,获取每个元素map,并将map强制转换为javabean private List buildIsReadFromMap(List list) { ArrayList arraylist = new ArrayList(); Object obj
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习后如何复习 java培训后如何提升