MyBatis调用Java静态函数
mappper.java
@Mapper
@Repository
public interface TestMapper {
void insert(Map params);
void insert2(@Param("file") String file,@Param("date") Date date);
mapper.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">
<mapper namespace="com.xxx.mapper.TestMapper">
<insert id="insert" parameterType="map">
INSERT INTO dbo.Test([File],[Time]) VALUES(#{file}, #{date})
</insert>
<insert id="insert2">
INSERT INTO dbo.Test([File],[Time]) VALUES(#{file}, '${@com.scanning.utils.ConvertUtils@convertTime(date)}')
</insert>
</mapper>
调用的java函数
public static String convertTime(Date date){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
return simpleDateFormat.format(date);
}
测试函数
@Test
public void insert3Test(){
mapper.insert2("12122",new Date());
}
注意事项
java函数必须是静态函数
MyBatis sql语句中字符串不能使用双引号
xml常用转义字符
附:XML转义字符
< < 小于号
> > 大于号
& & 和
' ' 单引号
" " 双引号