配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:oracle"/>
<property name="JDBC.Username" value="system"/>
<property name="JDBC.Password" value="root"/>
</dataSource>
</transactionManager>
<sqlMap resource="map/useAccount.xml"/>
<sqlMap resource="map/Dynamic.xml"/>
</sqlMapConfig>
操作文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
   "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap>
<select id="getAllUse" resultClass="hashMap" >
select * from use_account where groupname=#groupname#
</select>
<select id="getOneUse" resultClass="day01.Account" parameterClass="string">
select * from use_account where groupname=#groupname#
</select>
<insert id="insertOneUse" parameterClass="day01.Account">
insert into use_account(usename,password,groupname) values 
(#usename#,#password#,#groupname#)
<selectKey keyProperty="useid" resultClass="int">
select stockidsequence.nextval as id from dual
</selectKey>
</insert>

</sqlMap>
Java类操作代码:
public static void main(String[] args){
String resource="map/useAccount.xml";
Reader reader;
try {
reader=Resources.getResourceAsReader(resource);
SqlMapClient sqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);
List list=sqlMap.queryForList("getAllUse","NBA");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
        }
                    } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
但是总是报错:
Exception in thread "main" com.ibatis.sqlmap.client.SqlMapException: There is no statement named getAllUse in this SqlMap.
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:293)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:606)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:95)
at day01.Demo1.main(Demo1.java:20)
 求指导

解决方案 »

  1.   

    操作文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
      "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap>
    <select id="getAllUse" resultClass="hashMap" >
    select * from use_account where groupname=#groupname#
    </select>
    <select id="getOneUse" resultClass="day01.Account" parameterClass="string">
    select * from use_account where groupname=#groupname#
    </select>
    <insert id="insertOneUse" parameterClass="day01.Account">
    insert into use_account(usename,password,groupname) values  
    (#usename#,#password#,#groupname#)
    <selectKey keyProperty="useid" resultClass="int">
    select stockidsequence.nextval as id from dual
    </selectKey>
    </insert></sqlMap>这个文件没加载进去。
      

  2.   

    <sqlMap resource="map/useAccount.xml"/>
    <sqlMap resource="map/Dynamic.xml"/>这个sqlMap resource 的路径对还是不对?能按照你写的路径找到你的操作文件吗