为什么查询属性值的时候有的能掉到参数,有的得到的是空白
悬赏:5 发布时间:2008-07-06 提问人:wlhbye (初级程序员)
当我点击查询一条记录的的详细资料的时候,有的记录可以被查询出来 有的查询不出来 是空白页面
请问如何解决!谢谢
问题补充:
怎么说把 我现在数据库的id 定义的是char(5) 但是有的数据 只有4位数
5位数的 能查询到这个id 下面的所有内容 但是4位数的 就不可以 打印测试一下 说我的id=null
问题补充:
我的是oracle 数据库 采用的是struts+hibernate
我既然要查看这条记录的属性值,那么我就的先得到这条记录的id
我的id 是这样的到的
public Document findById(String docId) {
return (Document) super.getSession().get(Document.class, docId);
}
public ActionForward attributeDoc(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
DocumentForm documentForm = (DocumentForm) form;
String docId = request.getParameter("docId");
DocumentService documentService = (DocumentService) ServiceFactory_lh.getDocumentService();
Document d = (Document) documentService.findById(docId);
request.setAttribute("d", d);
return mapping.findForward("doc");
}
这个就是我得到这个记录的属性值,在页面上采用的是EL 表达式。
中间的
DocumentService documentService = (DocumentService) ServiceFactory_lh.getDocumentService();
都是进行封装这个方法使用的
请指点一二,
我该如何解决这样的问题
问题补充:
我已经尝试着 全部都加上了trim(); 同样都是调用一个方法 有的可以得到这个记录的属性值 有的得不到
问题补充:
应该跟你说的那个是一样,4位数的时候用空格来代替字符了,
问题补充:
我自己没有写SQL语句啊
运行时打印的是
select document0_.DOC_ID as DOC1_0_, document0_.FOLDER_ID as FOLDER2_9_0_, document0_.STATE_ID as STATE3_9_0_, document0_.TEMPLATE_ID as TEMPLATE4_9_0_, document0_.DOC_NAME as DOC5_9_0_, document0_.CREATOR as CREATOR9_0_, document0_.CREATE_TIME as CREATE7_9_0_, document0_.MODIFY_TIME as MODIFY8_9_0_, document0_.MODIFY_TIMES as MODIFY9_9_0_, document0_.ABSTRACT as ABSTRACT9_0_, document0_.SHARED as SHARED9_0_, document0_.STATE as STATE9_0_ from TRA.DOCUMENT document0_ where document0_.DOC_ID=?
你看看 不知道对不对
问题补充:
语句是没错 但是没有任何东西显示出来
该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员
请问如何解决!谢谢
问题补充:
怎么说把 我现在数据库的id 定义的是char(5) 但是有的数据 只有4位数
5位数的 能查询到这个id 下面的所有内容 但是4位数的 就不可以 打印测试一下 说我的id=null
问题补充:
我的是oracle 数据库 采用的是struts+hibernate
我既然要查看这条记录的属性值,那么我就的先得到这条记录的id
我的id 是这样的到的
public Document findById(String docId) {
return (Document) super.getSession().get(Document.class, docId);
}
public ActionForward attributeDoc(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
DocumentForm documentForm = (DocumentForm) form;
String docId = request.getParameter("docId");
DocumentService documentService = (DocumentService) ServiceFactory_lh.getDocumentService();
Document d = (Document) documentService.findById(docId);
request.setAttribute("d", d);
return mapping.findForward("doc");
}
这个就是我得到这个记录的属性值,在页面上采用的是EL 表达式。
中间的
DocumentService documentService = (DocumentService) ServiceFactory_lh.getDocumentService();
都是进行封装这个方法使用的
请指点一二,
我该如何解决这样的问题
问题补充:
我已经尝试着 全部都加上了trim(); 同样都是调用一个方法 有的可以得到这个记录的属性值 有的得不到
问题补充:
应该跟你说的那个是一样,4位数的时候用空格来代替字符了,
问题补充:
我自己没有写SQL语句啊
运行时打印的是
select document0_.DOC_ID as DOC1_0_, document0_.FOLDER_ID as FOLDER2_9_0_, document0_.STATE_ID as STATE3_9_0_, document0_.TEMPLATE_ID as TEMPLATE4_9_0_, document0_.DOC_NAME as DOC5_9_0_, document0_.CREATOR as CREATOR9_0_, document0_.CREATE_TIME as CREATE7_9_0_, document0_.MODIFY_TIME as MODIFY8_9_0_, document0_.MODIFY_TIMES as MODIFY9_9_0_, document0_.ABSTRACT as ABSTRACT9_0_, document0_.SHARED as SHARED9_0_, document0_.STATE as STATE9_0_ from TRA.DOCUMENT document0_ where document0_.DOC_ID=?
你看看 不知道对不对
问题补充:
语句是没错 但是没有任何东西显示出来
该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员
回答
请在详细描述一下你的问题,比如语言,操作过程等
你这样说很难判断
你这样说很难判断
congjl2002 (资深程序员) 2008-07-06
把sql语句也加上来,这样才好分析
另外,是否可以查到值与数据库的定义应该没什么关系
你定义为char(5)的时候如果不足5位,你是不是用使用0来补足其他位了?
另外,是否可以查到值与数据库的定义应该没什么关系
你定义为char(5)的时候如果不足5位,你是不是用使用0来补足其他位了?
congjl2002 (资深程序员) 2008-07-06
你说的情况很有可能是 因为你设置的字段是char(5)的 如果长度小于5的话,会以空格的形式补全字符,所以可能导致你查询的时候查不到。如果是sqlserver的话,你可以改成varchar类型 此问题可解决
yinyanbin (初级程序员) 2008-07-06
那应该就是空格问题了
将你要比较的数据库中的id字段用trim()括起来
这样查的时候就应该没有问题了
将你要比较的数据库中的id字段用trim()括起来
这样查的时候就应该没有问题了
congjl2002 (资深程序员) 2008-07-07
可不可以把sql语句也发一下
congjl2002 (资深程序员) 2008-07-07
你写where的时候这样写看看行不行
where trim(document0_.DOC_ID)='1234'
congjl2002 (资深程序员) 2008-07-07




