org.springframework.jdbc.BadSqlGrammarException:
; 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地址没有错的话 那就是你在数据库种没有建对应的表导致的