此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【Sunksubmarine】截止到2008-06-29 14:56:33的历史汇总数据(不包括此帖):
发帖数:10                 发帖分:440                
结贴数:10                 结贴分:440                
未结数:0                  未结分:0                  
结贴率:100.00%            结分率:100.00%            
敬礼!

解决方案 »

  1. <resultMap id="AccountResult" class="Account"> class路径写全了吗??????下面的写法呢
    <select id="selectAllAccounts" resultMap="AccountResult"> 
        select 
     ACC_ID        as ACC_ID,
    ACC_FIRST_NAME as ACC_FIRST_NAME,
    ACC_LAST_NAME  as ACC_LAST_NAME,
    ACC_EMAIL      as ACC_EMAIL
    from ACCOUNT 
      </select> 如果保证以上两个都是这样的,估计应该不会再出错了.
      

  2. 我是初学ibatis,很多都搞不清楚比如如果要定义多个resultMap肯定需要多个对应的javaBean吧?<resultMap id="AccountResult" class="Account"> 
    class这个属性需要带上路径么(实际上带不带包名我发帖前都试了,还是不行)而且我运行的是ibatis自带的例子,他的包名是写在上边的:
    <typeAlias alias="Account" type="com.mydomain.domain.Account"/>自带的例子总归不会有问题吧,是不是我的数据结构建的有问题呀!
      

  3. 自带的例子就有错,比如它的配置文件中的insert 里面
      <insert id="insertAccount" parameterClass="Account">
        insert into ACCOUNT (
          ACC_ID,
          ACC_FIRST_NAME,
          ACC_LAST_NAME,
          ACC_EMAIL
        values (
          #id#, #firstName#, #lastName#, #emailAddress#
        )
      </insert>values 前面竟然少了一个括号,我晕,不知道他们到底测试没有
      

  4. 晕,叫人不能信任各位前辈,谁有正确的例子发我一份;小弟在此先谢谢了~~~~~~~~lingxiaoverygood@sina.com
      

  5. 检查你的Account类有无4个属性:id,firstName,lastName,emailAddress
      

  6. 看下你的后台打印出来的异常,Sql语句有没有打印出来。如果打出来了,放到查询分析器里运行下,看看是否正确。一步一步来,不要把它想的多高深。你能行。
      

  7. package com.mydomain.domain;public class Account {  private int id;
      private String firstName;
      private String lastName;
      private String emailAddress;  public int getId() {
        return id;
      }  public void setId(int id) {
        this.id = id;
      }  public String getFirstName() {
        return firstName;
      }  public void setFirstName(String firstName) {
        this.firstName = firstName;
      }  public String getLastName() {
        return lastName;
      }  public void setLastName(String lastName) {
        this.lastName = lastName;
      }  public String getEmailAddress() {
        return emailAddress;
      }  public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
      }}应该是没问题
      

  8. com.ibatis.common.jdbc.exception.NestedSQLException:   
    --- The error occurred in com/mydomain/data/Account.xml.  
    --- The error occurred while applying a result map.  
    --- Check the Account.AccountResult.  
    --- The error happened while setting a property on the result object.  
    --- Cause: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.Can't start a cloned connection while in manual transaction mode. <-------------这个是什么意思?
      

  9. 在你的url后面加上 SelectMethod=cursorjdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xxx;SelectMethod=Cursor;
      

  10. 我先你应该检查这几个问题,第一,你是否设置了这样一个ACCOUNT空间,也可以说是唯一空间标志。
    eg:
       <sqlMap namespace="ACCOUNT">
       <typeAlias alias="ACCOUNTRESULT" type="com.ving.xzfw.vo.ACCOUNT"/>
      注意:你在dao曾调用的时候一定用的是上面的ACCOUNT.selectAllAccounts;
    第二:你将你的sql改成这样看看。 <select id="selectAllAccounts" resultMap="AccountResult"> 
      <![CDATA[
        select * from ACCOUNT 
       ]]> 
      </select> 
      

  11. 这个原因是 再一个connection中使用了多个statement或者preparestatement等,sqlserver2000默认在一个连接中只能使用一个statementsqlserver默认是SelectMethod=direct(默认方式),这种只支持一个连接打开一个statement,如果这样
    jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xxx;SelectMethod=cursor;这样设置之后就支持打开多个了,注意cursor似乎区分大小,是小写的 
      

  12. sql-map-config.xml中:
    <transactionManager type="JDBC">
      

  13. 在dao曾调用的时候一定用的是上面的ACCOUNT.selectAllAccounts
      

  14. 问题解决了,就是缺少SelectMethod=cursor,闹得谢谢大家
      

类似问题 »