- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[SSM]Mapper.xml的sql语句
⼀、增删改查
1. 增 :给数据库增加⼀个⽤户
insert id=addUser parameterType=User
insert into user (id,name,pwd values (#{id},#{name},#{pwd}
/insert
2. 删 :根据id删除⼀个⽤户
delete id=deleteUser parameterType=int
delete from user where id = #{id}
/delete
3. 改 :修改⽤户的信息
update id=updateUser parameterType=User
update user set name=#{name},pwd=#{pwd} where id = #{id}
/update
4. 查 :根据id查询⽤户
select id=selectUserById resultType=User
select * from user where id = #{id}
/select
⼆、参数的传递
1. 直接在 法中传递参数
在接⼝ 法的参数前加 @Param属性,Sql语句编写的时候,直接取@Param中设置的值即可,不需要单独设置参数类型。接⼝所有的
普通参数,尽量都写上@Param参数,尤其是多个参数时,必须写上 !
User selectUserById(@Param(id Int id ;
User selectUserByNP(@Param(username String username,@Param(pwd String pwd ;
如果参数是poj o类,那么就不⽤加@Param属性
int addUser(User user ;
参数直接传递时,对应的mapper.xml语句和上⾯的⼀样
2. 使⽤万能的Map
如果参数过多,我们可以考虑直接使⽤Map实现,如果参数⽐较少,直接传递参数即可
User selectUserByNP2(MapString,Object map ;
使⽤map传参时,对应的mapper.xml需要对应修改 :
select id=selectUserByNP2 parameterType=map resultType=User
select * from user where name = #{username} and pwd = #{pwd}
/select
三、⼤于⼩于和xml标签解析冲突的写法
1. 使⽤转义字符
字字符符 == == ’’
转义字符 gt; gt;= lt; lt;= quot; apos; amp;
where create_date_time = #{startTime}
//改为
where create_date_time gt ;= #{startTime}
2. 将sql语句写在 ![CDATA[...]] 中, 其中的特殊符号不进⾏解析.
where create_date_time ![CDATA[ = ]] #{startTime}
四、#{}和${}的区别
#{}是预编译处理,${}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调⽤ PreparedStatement 的set 法来赋值 ;
Mybatis 在处理${}时,就是把${}替换成变量的值。
使⽤#{}可以有效的防⽌ SQL 注⼊,提⾼系统安全性
在某些特殊场合下只能⽤${} ,不能⽤#{}。例如 :在使⽤排序时ORDER BY ${id} ,如果使⽤#{id} ,则会被解析成ORDER BY
文档评论(0)