1、MyBatis模糊查询
<select id="getArticlePage" resultType="com.hand.cms.dto.ArticleDto">
SELECT a.id,a.title,a.column_id AS columnId,a.ranges,a.author,a.read_times AS readTimes,a.created_date AS
createdDate,a.last_updated_date AS lastUpdatedDate,a.version_number AS versionNumber,a.deleted,c.name AS
columnsName
FROM article a
LEFT JOIN columns c
ON a.column_id=c.id
<where>
a.deleted=0
<if test="title!=null">
AND a.title LIKE concat(concat('%',#{title}),'%')
</if>
<if test="columnId!=null">
AND a.column_id LIKE concat(concat('%',#{columnId}),'%')
</if>
</where>
</select>
2、使用IDEA报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
1)、mapper接口类和mapper.xml是否在同一个包下,文件名称是否一致(仅后缀不同)
2)、mapper.xml的namespace是否是对应接口类的全名(包括包名和类名)
3)、mapper接口类的方法名是否与mapper.xml中sql标签的id相同
4)、idea默认是不编译src\main\java下的xml文件
- 将*Mapper.xml复制一份到resources下
- 在pom.xml中配置资源代码
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
3、更新数据库时报错:org.springframework.dao.DataIntegrityViolationException
数据库中时间类型的原因,导致这样的错误。datetime
以YYYY-MM-DD HH:MM:SS
格式检索和显示DATETIME
值。支持的范围为1000-01-01 00:00:00
到9999-12-31 23:59:59
。而TIMESTAMP
值支持的范围1970-01-01 08:00:01
到2038-01-19 11:14:07
储存,对于TIMESTAMP
来说如果不在这个范围就会报这个错
将MySQL时间类型由timestamp
改成datetime
就行了