j2ee 小女子不才,选用ssh框架做毕业设计,遇到问题颇多,望有贤之士help me,急呀,快要答辩了!
1.怎么从数据库里只取出一条数据呀,我用了sql语句为
String hql="from Wz where wtype='班级活动' and 1=1 order by wid DESC limit 0,1",在数据库中用queries测试的时候只有一条数据,但用hibernate查询显示于jsp页面,却是出现多条数据,这是为何?
2.图片上传问题,我做得比较简单,只需要保存路径到数据库即可,把图片存于某文件夹中,小女子写了jsp页面专为保存图片,再在业务类中保存数据于数据库,这时,出现问题,它们单独都可以执行,但怎么合为一体呢,执行jsp页面保存图片后再保存于数据库呢?
3.数据库一对多的问题,这个说来话长
大侠们,帮帮我这个小虾米吧!如果有一些小实例那就更好了,在此谢谢你们啦!
------解决方案-------------------- 这个Hibernate的查询是面向对象的,即它会根据你的POJO类进行查询,如果用Query查询只有一条数据,那么就是你的POJO该改改咯
------解决方案-------------------- 一对多的问题好办,将Hibernate的mapping文件的lazy属性改为false,查询时直接查一的那个类,多的那个一系列类就成为一的一个集合属性而已,直接get它
------解决方案-------------------- 1.具体原因不知道,但建议你检查自己hql语句,和hibernate中的实体类,是否正确。
2.你不是用了ssh了么,jsp跳转到action,action里进行保存到数据库的操作,最后再根据是否成功跳转到不同的jsp,搞定。
3.具体说说什么问题。
------解决方案-------------------- 我做的时候都是把传图片和上传数据分开的,不是非得和在一起吧
------解决方案-------------------- 1.如何放入iterator。
首先,建立一个辅助实体类(user_class),其中包括需要放入iterator的属性。
其次,分别查询user表和class表,并将得到的数据注入到辅助类中,将辅助类集合放入list。
最后就可以用iterator遍历了:
Iterator it = list<user_class>.iterator();
it.hasNext(){
user_class u_c = it.next();
//慢慢取吧。。。
}
2.数据库中不需要变。
------解决方案-------------------- 引用: 引用:
这个Hibernate的查询是面向对象的,即它会根据你的POJO类进行查询,如果用Query查询只有一条数据,那么就是你的POJO该改改咯
我是菜鸟级,能说具体点么?我该如何修改才能只查询一条记录呢?
具体来说你只要把Java那些与数据库表相对应的类是否一一对应
理论上来说hql语句只能支持框架
你在数据库里查是刚好数据库工具能识别它
因为处理语句的方式不同,查询出来的数据肯定一个是只有一个,另外一个有多个
from Wz where wtype='班级活动' and 1=1 order by wid DESC limit 0,1
试着增加一些查询限制条件,这个语句非常可能查出多条数据,我也是用Hibernate
------解决方案-------------------- String hql="from Wz where wtype='班级活动' and 1=1 order by wid DESC limit 0,1"
这个应该是你数据库有多个数据吧!但是为什么是多条记录呢?
首先你使用这个语句去看到的是一条记录原因是:limit 0,1只取了一条
但是hibernate有自己的分页的方法,工作中不知道样写这个语句是否能生效(hibernate)。你可以试试去掉limit 0,1。然后用hibernate的分页方法。
还有这里的 and 1=1是不是没多大实际意义吧。也可以不要了!
------解决方案-------------------- 如果你选用了SSH框架,那么hibernate是面向对象的。不用你自己去写sql语句的。每个javaBean对应你数据库中的一张表(不严格的说)。你操作这个Bean的属性就是操作表中的字段。
------解决方案-------------------- 第一个问题我也遇到过,不过解决了,hibernate的hql语句没有limit关键字,它使用以下代替limit,效果一样。
Query query = session.createQuery(hql);
query.setFirstResult(pageroffset);
query.setMaxResults(e);
------解决方案-------------------- hibernate 是对象查询,也就是说你查到的数据是一个对象(一个大集合),你可以用条件语句去筛选,还有你上传图片你可以把图片变bolob格式存到数据库里面去,然后下载的时候把这个编译回来再输出!
------解决方案-------------------- 引用: 第一个问题我也遇到过,不过解决了,hibernate的hql语句没有limit关键字,它使用以下代替limit,效果一样。
Query query = session.createQuery(hql);
query.setFirstResult(pageroffset);
query.setMaxResults(e); 是的,Hibernate是这样
------解决方案-------------------- 引用: