博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis基本使用(一)
阅读量:4109 次
发布时间:2019-05-25

本文共 2071 字,大约阅读时间需要 6 分钟。

1. 基本配置(这里强调的重点不在于配置细节,而在于 .dtd 文件的引用位置)
  1. mybatis.config.xml
  1. mapper.xml
  1. 一些语句示例
insert into Author (username, password, email, bio) values
(#{item.username}, #{item.password}, #{item.email}, #{item.bio})
# public void deleteById(int id,int name);
delete from `T_aaaa` where id=#{0} and name=#{1}
# public List
queryABCD(@Param("id") int id,@Param("from") int from,@Param("size") int size);
# 使用 where 元素,条件语句中判断相等使用 ‘==’ 双等于号,!使用单个 ‘=’ 等于号为赋值操作!
2. mybatis使用中 ‘#{ }’ 与 ‘${ }’ 的区别
字符串替换默认情况下,使用 #{} 格式的语法会导致 MyBatis 创建 PreparedStatement 参数占位符并安全地设置参数(就像使用 ? 一样)。 这样做更安全,更迅速,通常也是首选做法,不过有时你就是想直接在 SQL 语句中插入一个不转义的字符串。 比如,像 ORDER BY,你可以这样来使用:ORDER BY ${columnName}这里 MyBatis 不会修改或转义字符串。当 SQL 语句中的元数据(如表名或列名)是动态生成的时候,字符串替换将会非常有用。 举个例子,如果你想通过任何一列从表中 select 数据时,不需要像下面这样写:@Select("select * from user where id = #{id}")User findById(@Param("id") long id);@Select("select * from user where name = #{name}")User findByName(@Param("name") String name);@Select("select * from user where email = #{email}")User findByEmail(@Param("email") String email);// and more "findByXxx" method可以只写这样一个方法:@Select("select * from user where ${column} = #{value}")User findByColumn(@Param("column") String column, @Param("value") String value);其中 ${
column} 会被直接替换,而 #{value} 会被使用 ? 预处理。 因此你就可以像下面这样来达到上述功能:User userOfId1 = userMapper.findByColumn("id", 1L);User userOfNameKid = userMapper.findByColumn("name", "kid");User userOfEmail = userMapper.findByColumn("email", "noone@nowhere.com");这个想法也同样适用于用来替换表名的情况。提示 用这种方式接受用户的输入,并将其用于语句中的参数是不安全的,会导致潜在的 SQL 注入攻击,因此要么不允许用户输入这些字段,要么自行转义并检验。
3. 基本使用(官网中文截图)
  • mybatis基本使用-官网中文参考

转载地址:http://wnlsi.baihongyu.com/

你可能感兴趣的文章
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
【增强学习在无人驾驶中的应用】
查看>>
OpenCV meanshift目标跟踪总结
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
卧槽!Java 虚拟机竟然还有这些性能调优技巧...
查看>>
听说玩这些游戏能提升编程能力?
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
沙雕程序员在无聊的时候,都搞出了哪些好玩的小玩意...
查看>>
Mysql复制表以及复制数据库
查看>>
深究Java中的RMI底层原理
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>
inet_ntoa、 inet_aton、inet_addr
查看>>
用模板写单链表
查看>>
链表各类操作详解
查看>>
C++实现 简单 单链表
查看>>
数据结构之单链表——C++模板类实现
查看>>