应用程序异常,访问的页面出现异常

org.springframework.jdbc.BadSqlGrammarException:

Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: FUNCTION fhadmin.LOANPERIOD does not exist

The error may exist in file [D:\tomcat\apache-tomcat-7.0.57\webapps\FHADMINM\WEB-INF\classes\mybatis1\interest\InterestMapper.xml]

The error may involve InterestMapper.datalistPage-Inline

The error occurred while setting parameters

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: FUNCTION fhadmin.LOANPERIOD does not exist

; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: FUNCTION fhadmin.LOANPERIOD does not exist

InteresMapper.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--表名 -->
<sql id="tableName">
    TB_INTERESTINTEREST
</sql>

<!-- 字段 -->
<sql id="Field">
    CLIENTNAME, 
    PRODUCTNAME,    
    GUARANTEEMETHOD,    
    LOANPAYMENTAMOUNT,  
    LOANPERIOD(MONTHS), 
    ACCOUNTOPENINGDATE, 
    DATEOFEXPIRY,   
    LENDINGRATE,    
    LENDINGRATE(MONTH), 
    LOANBALANCE,    
    WRITEOFFTHEPRINCIPAL,   
    ARREARS,    
    IRREVOCABLEINTEREST,    
    ACCOUNTSTATUS,  
    DATEOFCLASSIFICATION,   
    CLASSIFICATIONRESULT,   
    HANDLINGBANK,   
    ATTN,   
    INTEREST_ID
</sql>

<!-- 字段值 -->
<sql id="FieldValue">
    #{CLIENTNAME},  
    #{PRODUCTNAME}, 
    #{GUARANTEEMETHOD}, 
    #{LOANPAYMENTAMOUNT},   
    #{LOANPERIOD(MONTHS)},  
    #{ACCOUNTOPENINGDATE},  
    #{DATEOFEXPIRY},    
    #{LENDINGRATE}, 
    #{LENDINGRATE(MONTH)},  
    #{LOANBALANCE}, 
    #{WRITEOFFTHEPRINCIPAL},    
    #{ARREARS}, 
    #{IRREVOCABLEINTEREST}, 
    #{ACCOUNTSTATUS},   
    #{DATEOFCLASSIFICATION},    
    #{CLASSIFICATIONRESULT},    
    #{HANDLINGBANK},    
    #{ATTN},    
    #{INTEREST_ID}
</sql>

<!-- 新增-->
<insert id="save" parameterType="pd">
    insert into 
<include refid="tableName"></include>
    (
<include refid="Field"></include>
    ) values (
<include refid="FieldValue"></include>
    )
</insert>

<!-- 删除-->
<delete id="delete" parameterType="pd">
    delete from
    <include refid="tableName"></include>
    where 
        INTEREST_ID = #{INTEREST_ID}
</delete>

<!-- 修改 -->
<update id="edit" parameterType="pd">
    update
    <include refid="tableName"></include>
    set 
        CLIENTNAME = #{CLIENTNAME},
        PRODUCTNAME = #{PRODUCTNAME},
        GUARANTEEMETHOD = #{GUARANTEEMETHOD},
        LOANPAYMENTAMOUNT = #{LOANPAYMENTAMOUNT},
        LOANPERIOD(MONTHS) = #{LOANPERIOD(MONTHS)},
        ACCOUNTOPENINGDATE = #{ACCOUNTOPENINGDATE},
        DATEOFEXPIRY = #{DATEOFEXPIRY},
        LENDINGRATE = #{LENDINGRATE},
        LENDINGRATE(MONTH) = #{LENDINGRATE(MONTH)},
        LOANBALANCE = #{LOANBALANCE},
        WRITEOFFTHEPRINCIPAL = #{WRITEOFFTHEPRINCIPAL},
        ARREARS = #{ARREARS},
        IRREVOCABLEINTEREST = #{IRREVOCABLEINTEREST},
        ACCOUNTSTATUS = #{ACCOUNTSTATUS},
        DATEOFCLASSIFICATION = #{DATEOFCLASSIFICATION},
        CLASSIFICATIONRESULT = #{CLASSIFICATIONRESULT},
        HANDLINGBANK = #{HANDLINGBANK},
        ATTN = #{ATTN},
    INTEREST_ID = INTEREST_ID
    where 
    INTEREST_ID = #{INTEREST_ID}
</update>

<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
    select 
    <include refid="Field"></include>
    from 
    <include refid="tableName"></include>
    where 
        INTEREST_ID = #{INTEREST_ID}
</select>

<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
    select
    <include refid="Field"></include>
    from 
    <include refid="tableName"></include>
    where 1=1
    <if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
        and
            (
            <!--    根据需求自己加检索条件
                字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
                 or 
                字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') 
            -->
            )
    </if>
</select>

<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
    select
    <include refid="Field"></include>
    from 
    <include refid="tableName"></include>
</select>

<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
    delete from
    <include refid="tableName"></include>
    where 
        INTEREST_ID in
    <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
             #{item}
    </foreach>
</delete>

你 的 InterestMapper.xml 这个 配置的不正确 进去看看你写的 sql 或者 引入的mapper 看看 是否正确

FUNCTION fhadmin.LOANPERIOD does not exist,很明显是这个函数不存在啊

不说了。建议参考jpetstore,在github上。同时看mybatis的官方文档

1.fhadmin.LOANPERIOD 这个函数(存储过程),真的存在吗?,
2.如果存在,你在数据库可视化工具中执行下试试,成功了,再放到项目中,
3.上述问题都排查了,再看你的配置文件
不懂,再咨询


select

from

where 1=1
<!-- 关键词检索 -->
and
(
<!-- 根据需求自己加检索条件
字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
or
字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
-->
)

这个sql参数获取存在问题;parameterType 是传入参数;resultType 是返回参数
检查 这里的pd;如果你的page参数存在keywords属性;就把**pd.keywords改成page.keywords**试试

InterestMapper.xml里的数据类型和数据库里是否对应?

数据库没有连接成功,查看数据库。

建议参考jpetstore,在github上。看mybatis的官方文档

数据库连接问题,数据库配置的IP地址没有错的话 那就是你在数据库种没有建对应的表导致的