MyBatis学习(一)——SQL语句中符号的转义(SQL不兼容问题)

昨天等大朋友下班,然后去他工位上找他发现他和同事在看代码,我说下班了,然后他说还有一点问题(他们使用的是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文档时报错,从而导致程序错误。其实很简单,我们只需作如下替换即可避免上述的错误:

原符号<<=>>=' '" "
替换符号&lt;&lt;=&gt;&gt;=&apos;&quot;

 


版权声明:本文为lds619原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。