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.数据库一对多的问题,这个说来话长大侠们,帮帮我这个小虾米吧!如果有一些小实例那就更好了,在此谢谢你们啦!

解决方案 »

  1.   

    这个Hibernate的查询是面向对象的,即它会根据你的POJO类进行查询,如果用Query查询只有一条数据,那么就是你的POJO该改改咯
      

  2.   

    问题二之前我也遇到过类似的,很可能是因为你将保存图片的文件夹放到了WEB-INF下,这样图片是无法显示出来的
      

  3.   

    一对多的问题好办,将Hibernate的mapping文件的lazy属性改为false,查询时直接查一的那个类,多的那个一系列类就成为一的一个集合属性而已,直接get它
      

  4.   

    1.具体原因不知道,但建议你检查自己hql语句,和hibernate中的实体类,是否正确。2.你不是用了ssh了么,jsp跳转到action,action里进行保存到数据库的操作,最后再根据是否成功跳转到不同的jsp,搞定。3.具体说说什么问题。
      

  5.   


    user表中有:
    uid,unch
    class表中有:
    cid,cname,ccreateTime,uid我该怎么查询在jsp页面显示字段uid,unch,cname,ccreateTime放入iterator中呢?
    数据库中没有设外键什么的,然后,我该如何完成呢?
    String hql="select `user`.uid,unch,cname,cschoolname,ccreateTime from user,class where `user`.uid=class.uid";
      

  6.   

    1.如何放入iterator。
    首先,建立一个辅助实体类(user_class),其中包括需要放入iterator的属性。
    其次,分别查询user表和class表,并将得到的数据注入到辅助类中,将辅助类集合放入list。
    最后就可以用iterator遍历了:
    Iterator it = list<user_class>.iterator();
    it.hasNext(){
        user_class u_c = it.next();
        //慢慢取吧
    }2.数据库中不需要变。
      

  7.   

    具体来说你只要把Java那些与数据库表相对应的类是否一一对应
    理论上来说hql语句只能支持框架
    你在数据库里查是刚好数据库工具能识别它
    因为处理语句的方式不同,查询出来的数据肯定一个是只有一个,另外一个有多个
    from Wz where wtype='班级活动' and 1=1 order by wid DESC limit 0,1
    试着增加一些查询限制条件,这个语句非常可能查出多条数据,我也是用Hibernate
      

  8.   

    我其实就是想查出wtype='班级活动'最近发布的一条,具体限制条件我也不知道该怎么写呀!
      

  9.   

    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是不是没多大实际意义吧。也可以不要了!
      

  10.   

    如果你选用了SSH框架,那么hibernate是面向对象的。不用你自己去写sql语句的。每个javaBean对应你数据库中的一张表(不严格的说)。你操作这个Bean的属性就是操作表中的字段。
      

  11.   


    根据你的思路我终于解决了第一个问题,使用query.setMaxResults(1);就可以了!
      

  12.   

    第二个问题:
    ssh上传图片问题:
    上传页面部分代码:
    <form action="upload.jsp" method="post" name="form1" enctype="multipart/form-data">
    <input name="fileName" type="file"   size="30"  />
    </form>
    upload.jsp部分代码:
    <%SmartUpload su =new SmartUpload();
    su.initialize(pageContext);
    su.setMaxFileSize(500*1024*1024);
    su.setAllowedFilesList("bmp,gif,jpg");
    su.setDeniedFilesList("exe,bat,jsp,htm,html");
    su.upload();File myfile=su.getFiles().getFile(0);
    String myfilename=myfile.getFileName();
    String suffix=myfilename.substring(0, myfilename.lastIndexOf('.'));
    String ext=su.getFiles().getFile(0).getFileExt();
    int filesize=myfile.getSize();String aa="E:\\biyesheji\\shiyan92\\shiyan91\\shiyan9\\WebContent\\images\\";
    String trace=aa+myfilename;
    System.out.println("tupianshangchuan");
    myfile.saveAs(trace);%>可以将图片保存于路径中<form action="../shiyan9/page/Bjhd.action?name=fbhd" method="post" name="form1">
    <input name="wz.wface" type="file"   size="30"  />
    </form>
    action中部分代码:
    wzService.addWz(getWz());
    可以将其名字保存于数据库中现在问题,我想先将图片名字保存于数据库,如果success,再将图片保存于文件夹下,这两部分该如何融合在一起?我犯难了
      

  13.   

    第一个问题我也遇到过,不过解决了,hibernate的hql语句没有limit关键字,它使用以下代替limit,效果一样。
    Query query = session.createQuery(hql);
    query.setFirstResult(pageroffset);
    query.setMaxResults(e);
      

  14.   

    hibernate 是对象查询,也就是说你查到的数据是一个对象(一个大集合),你可以用条件语句去筛选,还有你上传图片你可以把图片变bolob格式存到数据库里面去,然后下载的时候把这个编译回来再输出!
      

  15.   


    那个问题我用query.setMaxResults(1);解决了
      

  16.   


    Unable to instantiate Action, action.Cxzd,  defined for 'Cxzd' in namespace ''Type bean.Cx not present
    是不是要配置什么文件呀?Cx是我建立的那个辅助实体类,
      

  17.   

    充分说明你对ssh会的不多,多看看基础吧
      

  18.   

    你也可以吧upload.jsp中的逻辑也写到action中,然后先进行保存wzService.addWz(getWz())操作,在进行上传;
    还有一个笨方法,也可以点击上传后执行下一个ajax访问action,保存成功后,在submit,进行上传
      

  19.   

    Unable to instantiate Action, action.Cxzd,  defined for 'Cxzd' in namespace ''Type bean.Cx not present是说无法出来Cx,它不是当前的,是要配置它以取代原来的
      

  20.   

    你也可以吧upload.jsp中的逻辑也写到action中,然后先进行保存wzService.addWz(getWz())操作,在进行上传;SmartUpload su =new SmartUpload();
    su.initialize(pageContext);在action中pageContext这一块会出现问题
      

  21.   

    pageContext是一个JSP封装好的类,在action中肯定会这样
      

  22.   

    我在那个页面放两个button,一个<input type="button" name="addDailyReport" value="添加日报" onclick="checkDate()"/>用来上传数据,另外一个把传照片的功能打开到一个新的页面去