当前位置:编程学习 > JAVA >>

hibernate及sql server的行列互转存储的问题




如图所示,这两个表的内容是一样的,但是上面的是一行,只存储一条记录,并且类型也不一样,现在要把这表里面的内容改成下面的表的形式,也就是列来显示~!


出现的问题:
1.数据类型的问题
   上表的字段很多,大概有97个,并且类型有int tinyint varchar nvarchar numeric datatime float几种,下表的类型就三种,int varchar  nvarchar,变换成列显示之后,数据类型肯定要统一~! 我想的是统一成 nvarchar类型~!因为有汉字~!

2.存储的问题
    因为上表字段很多,所以对应的下表就有很多记录,如果一个一个的update,有些麻烦·!请教了老员工,他说可以select上表的字段出来,然后转成对象数组,再循环,看上表的字段名和下表的哪一行的name是对应的,对应的话就把值存储进去。


我百度了一下,不太会~!


String sql = "select new  com.yuweitek.goss.dao.SystemConfig(id, accessPointName, alarmWaveFlag) from GosssSystemConfig where id = 0 ";
Query queryList = session.createQuery(sql);

Object[] objs = null;

Iterator iterator = queryList.iterate();
while(iterator.hasNext()){
//存在对象数组objs中
 objs = (Object[]) iterator.next();
 
}
if(Object[] obj2 : objs){
/*这里报错“Syntax error on token(s), misplaced construct(s)”
我百度的结果是 好像要加一个构造方法,但不知道在哪里加
其次就是这个循环报错
*/
//其他代码
if(obj2.equals(obj3)){
//提示obj2有问题 “obj2 cannot be resolved”

//其他代码
}

}


--------------------编程问答-------------------- 主要是 怎么查找出上表的的字段名,并且和下表的name进行比较?~ 循环的for报错,并且下面的obj2找不到,这不该啊?~!
很棘手啊!!! --------------------编程问答-------------------- 貌似是关于数据库方面的问题,应该问问DBA的。
换到“数据库开发”更准确些。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 2 楼 panzhixiong_cn 的回复:
貌似是关于数据库方面的问题,应该问问DBA的。
换到“数据库开发”更准确些。


是啊· 有点失误 --------------------编程问答-------------------- 直接jdbc很简单,2个for循环就可以了(getcounlumName什么的),hibernate不太清楚,但是估计你查一下应该也会有的
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,