ggggkkkk- 2011-10-04 23:02 采纳率: 0%
浏览 218
已采纳

初次学习ibatis...太辛苦..问题搞不定...请帮忙解决一下.....

其它查询都可以,删除都可以.就是增加和修改报错了.

sqlMapConfig.xml是没有问题的.

**********************customer.xml*************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">

<select id="customerAll" resultClass="Customer">
    select id,name,enName,describe
    from customer
</select>

<select id="selectCustomerById" parameterClass="int" resultClass="Customer">
        select id,name,enName,describe
    from customer where id=#id#
</select>

<delete id="deleteCustomer" parameterClass="int">
    delete from customer where id = #id#
</delete>

[color=red][b]<insert id="insertCustomer" parameterClass="Customer">
    insert into customer(id,    name,    enName,     describe)
                values  ("#id#","#name#","#enName#","#describe#")
</insert>

<update id="updateCustomer" parameterClass="Customer">
    update customer set 
        name="#name#",enName="#enName#",describe="#describe#"
    where id="#id#"
</update>[/b]</sqlMap>[/color]

**********************customer.xml*************************

com.ibatis.common.jdbc.exception.NestedSQLException:

--- The error occurred in org/gxf/demo/customer.xml.

--- The error occurred while applying a parameter map.

--- Check the insertCustomer-InlineParameterMap.

--- Check the parameter mapping for the 'id' property.

--- Cause: java.sql.SQLException: 无效的列索引
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:107)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58)
at org.gxf.dao.impl.CustomerDaoImpl.addCustomer(CustomerDaoImpl.java:31)
at org.gxf.test.Test.main(Test.java:30)
Caused by: java.sql.SQLException: 无效的列索引
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
at oracle.jdbc.driver.OraclePreparedStatement.setIntInternal(OraclePreparedStatement.java:3970)
at oracle.jdbc.driver.OraclePreparedStatement.setInt(OraclePreparedStatement.java:3961)
at com.ibatis.sqlmap.engine.type.IntegerTypeHandler.setParameter(IntegerTypeHandler.java:30)
at com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:166)
at com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:78)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
... 5 more

********************CustomerDaoImpl******************************
public void updateCsutomer(Customer customer) {
try {
sqlMapClient.update("updateCustomer", customer);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void addCustomer(Customer customer) {
try {
System.err.println(sqlMapClient.insert("insertCustomer",customer));
} catch (SQLException e) {
e.printStackTrace();
}
}
*********************test*************************
Customer customer = new Customer();
customer.setId(2);
customer.setName("ibatisName");
customer.setEnName("ibatisEnName");
customer.setDescribe("test_one");
new CustomerDaoImpl().addCustomer(customer);

  • 写回答

1条回答

  • iteye_15914 2011-10-04 23:05
    关注

    [code="xml"]
    values ("#id#","#name#","#enName#","#describe#")
    [/code]

    这里改成
    [code="xml"]
    values (#id#,#name#,#enName#,#describe#)
    [/code]

    不加双引号 请仔细查一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能