org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression### The error may involve com.nicklee.provider.mybatis.maps.test.SelectBS_XJFPByList-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression           mSession = ServiceStatic.mSqlMapper.openSession();
// 业务处理层,实现对应业务处理
try 
{
//list = BS_XJFPControl.f_selectBS_XJFPByList(mSession, gp);
            HashMap<String,Object> mMap=new HashMap<String,Object>();
            mMap.put("ispage", "true");
            mMap.put("bindex", 0);
            mMap.put("eindex", 5);
            list =mSession.selectList("SelectBS_XJFPByList",mMap);
            
// log4j日志记录器
mLogger.info(mLogTitle + "查询BS_XJFP数据成功!");

catch (Exception exp)
{
// log4j日志记录器
mLogger.error(mLogTitle + "查询BS_XJFP数据失败!" + exp.getMessage());
} <select id="SelectBS_XJFPByKey" parameterType="java.util.HashMap" resultType="hashmap"  flushCache="true" useCache="false">
select
<trim prefix="" prefixOverrides="" suffixOverrides="," >
            a.现结发票号,
            a.船名,
            a.航次,
            a.箱号,
            a.金额,
            a.收款人,
            a.收款日期,
            a.备注,
            a.帐单编号,
            a.发票号,
            a.结算方式,
            a.发票代码,
            a.状态,
            a.开票日期,
            a.现结付款对象,
    </trim>
    from BS_XJFP a
    <trim prefix="where" prefixOverrides="and |or " suffixOverrides="">
     现结发票号 = #{现结发票号,javaType=String,jdbcType=CHAR}
    </trim>
</select>

解决方案 »

  1.   

    SQLSyntaxErrorException指的是SQL语法错误,在控制台打印SQL,看下问题在哪。
      

  2.   

    这个是用ibatis的 xml来设置sql语句的,能取得出sql语句吗?
      

  3.   


    当然可以啊  在log4j里面配置log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.ResultSet=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG
    log4j.logger.java.sql.Statement=DEBUG 
    这样就可以打印出来了