昨天等大朋友下班,然后去他工位上找他发现他和同事在看代码,我说下班了,然后他说还有一点问题(他们使用的是mybatis框架),让我看看遇没遇到过,经过大朋友的几番演示,我隐隐约约的好像知道是什么问题,百度查了一下证实自己的猜测,果然是转义字符的问题,原来数据库所使用的引号和mybatis不一样!问题解决之后愉快的下班。今天做一下小总结,方便以后自己看一下。
我们在使用Mybatis的时候,大致由三部分组成。
model、mapper接口、mapper.xml
- model就是我们经常使用的实体类,可以在mapper.xml中直接使用(当做参数或者结果返回)
- mapper接口就是对服务层提供的接口,是整个数据库操作的封装。
- mapper.xml是我们来写sql语句的地方,每一个sql语句都有一个唯一标识的id,而这个id要与mapper接口的方法名一致(接口通过方法名去找相应的sql语句执行的
其中在mapper.xml中会使用到<select></select><if></if><foreach></foreach等标签,当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=,‘’,“ ”等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。其实很简单,我们只需作如下替换即可避免上述的错误:
原符号 | < | <= | > | >= | ' ' | " " |
---|---|---|---|---|---|---|
替换符号 | < | <= | > | >= | ' | " |