SSH 整合2

  1、  java.lang.NoClassDefFoundError: org/hibernate/exception/DataException

          出现该问题的原因是没有找到相关的class文件。
仔细检查项目中Hibernate包中的class文件,发现的确没有DateException.class这个文件。重新下载一个Hibernate包导入。问题解决。

       当然引发此问题还有可能是语句写错了或者配置出错; 或者: 由于我们向数据库里存值是有的字段没有值而照成的,哪怕那个字段是允许为空的。 

 

2、     String hql="select u from UserinfoId u where u.username=? and u.userpwd=?";则报如下异常:
 java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.IdentNode
 /-[IDENT] IdentNode: 'u' {originalText=u}

   当我改成:
   String hql="from UserinfoId u where u.username=? and u.userpwd=?";则那个异常消失了

   ——————至今仍未搞明白这是为什么....

 

3、 在web.xml配置监听器

      <listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>
 </context-param>

    在配置applicationContext.xml时, 如果前面不加classpath的话, 那么其默认是到meta-inf下去找, 而不是在web-inf下去查找。

 

4、  今天晚上练习时发现: 选择创建HibernateSessionFactory时假如没有导入hibernate3.0 advance包时则会报错..

       修改web.xml是即时生效的, 而其他的xxx.xml文件就得重新部署才会生效....

 

5、 MyEclipse 自动补全设置与快捷键设置2009-02-12 12:06myeclipse快捷键问题 eclipse3.3中把内容助手(content assist)的快捷键由 al + /改成了ctrl + space,这又刚好跟我们操作系统的切换输入法的快捷键冲突,所以造成内容助手不能使用了,给写代码带来了极大的不便。而已前eclipse 3.2版本中的 alt + /快捷键被作为新的单词补全(word competion)功能的快捷键。所以现在想像以前一样使用alt+ /来实现内容助手的功能,就需要更改eclipse3.3快捷键的设置了。具体操作如下: 1. 点击Windows- >Preferences- >General- >Keys . 2. 在列出的快捷键列表中查找到:word competion,把它的快捷键alt + /改成其它的快捷键(怎么改,先把此快捷键删除,点右边的按钮 "remove binding ", 再选中binding文本框,输入你想要的快捷键)。 3. 在列出的快捷键列表中查找到:content assist,把它的快捷键ctrl +space改成我们想的的alt+ /即可了。

‘=================================================================================== 1. 打开MyEclipse 6.0.1,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”。 3. 选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activation triggers for java”这个选项。其实就是指触发代码提示的就是“.”这个符号。 4. “Auto Activation triggers for java”这个选项,在“.”后加abc字母,方便后面的查找 修改。然后“apply”,点击“OK”。 5. 然后,“File”→“Export”,在弹出的窗口中选择“Perferences”,点击“下一步”。 6. 选择导出文件路径,本人导出到桌面,输入“test”作为文件名,点击“保存”。 7. 在桌面找到刚在保存的文件“test.epf”,右键选择“用记事本打开”。 8. 可以看到很多配置MyEclipse 6.0.1的信息 9. 按“ctrl + F”快捷键,输入“.abc”,点击“查找下一个”。 10. 查找到“.abc”的配置信息如下: 如下: 11. 把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,关闭“test.epf”。 12. 回到MyEclipse 6.0.1界面,“File”→“Import”,在弹出的窗口中选择“Perferences”,点击 “下一步”,选择刚在已经修改的“test.epf”文件,点击“打开”,点击“Finish”。该步骤和上面 的导出步骤类似。 之后,你打什么字母,都会有提示了,呵呵,收藏了很长时间,拿来分享~~~~~

  

6、  建立Statement时使用默认参数。导致在使用执行rs.last()时,产生“java.sql.SQLException:对只转发结果集的无效操作:last”的异常。
最后在建立Statement时加入相关参数,就可以解决了。

操作查询结果集的过程中出现异常
 
出现异常的语句: rs.last();
 
异常的详细信息:对只转发结果集的无效操作: last
 
解决办法:  stat = conn.createStatement();
         改为 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 就可以了
 
分析: 异常出现于移动结果集的指针时,原因是在生成statement对象的时候提供的参数不同
无参数的那个方法使用的是默认参数,statement执行后得到的结果集类型为 ResultSet.TYPE_FORWARD_ONLY.这种类型的结果集只能通过rs.next();方法逐条读取,使用其他方法就会报异常. 如果想执行一些复杂的移动结果集指针的操作就要使用其他参数了
顺便简单介绍一下各个参数:
ResultSet.TYPE_FORWARD_ONLY   (略)
ResultSet.TYPE_SCROLL_INSENSITIVE  双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
ResultSet.TYPE_SCROLL_SENSITIVE  双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。
ResultSet.CONCUR_READ_ONLY  只读取ResultSet
ResultSet.CONCUR_UPDATABLE  用ResultSet更新数据库  
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值