MyBatis 教程
MyBatis 入门
安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。 如果使用 Maven 来构建项目,则需将下面的依赖代码置于…
MyBatis XML配置
MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。 属性(properties) 这些属性都是可外部配置且…
MyBatis XML映射文件
Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC…
MyBatis 动态SQL
动态 SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦。拼接的时候要确…
MyBatis SQL语句构建器
SQL语句构建器 问题 Java程序员面对的最痛苦的事情之一就是在 Java 代码中嵌入 SQL 语句。这么来做通常是由于 SQL 语句需要动态来生成-否则可以将它们放到外部文件或…
MyBatis 日志
Logging Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具: SLF4J Apache Commons Logging Log4j 2 Log4j JD…
MyBatis 3.5.7 新特性
当前mybatis的最新版本是 mybatis 3.5.7,发布时间是2021年4月26日,官方下载链接为:mybatis-3-releases mybatis 3.5.…
MyBatis常见问题合集
总结一些基础的常见的Mybatis问题,方便自己,方便读者学习,内容不多 1、大于号、小于号在 sql 语句中的转换 使用 mybatis 时 sql 语句是写在 xml …
MyBatis实现分页功能
1. 原始方法,使用 limit,需要自己处理分页逻辑: 对于 mysql 数据库可以使用 limit ,如: select * from table limi…
Mybatis四种分页方式
数组分页 查询出全部数据,然后再list中截取需要的部分。 mybatis接口 List<Student> queryStudentsByArray(); xml配置文…
MyBatis 中#{}和${}区别
#{} 是预编译处理,像传进来的数据会加个” “(#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号) ${} 就是字符串替换。直接替…
MyBatis接口绑定的几种方式
接口绑定有两种方式 1、使用注解,在接口的方法上面添加@Select@Update等注解,里面写上对应的SQL语句进行SQL语句的绑定。 2、通过映射文件xml方式进行绑定,指定x…
MyBatis Like 模糊查询有几种方式
方式1:$ 这种方式,简单,但是无法防止SQL注入,所以不推荐使用 LIKE %${name}% 方式2:# &nbs…
通常一个mapper.XML对应一个DAO接口,DAO是否可以重载?
答:不能重载,方法名对应的 mapper.xml 文件里的一个 id,这个与方法名对应,系统会根据 namespace+id 找到对应的方法对应。 Dao 接口即 Mapper 接…
MyBatis映射文件中A标签引用B标签,如果B标签在A的后面定义,可以吗?
虽然 Mybatis 解析 Xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以定义在任何地方,Mybatis 都可以正确识别。 原理: Mybatis 解…
MyBatis不同映射文件中的id是否可以重复?
可以重复,但是需要映射文件的namespace不同 不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复;如果没有配置 namespace,那么 id 不…
MyBatis如何获取自动生成的主键id
MySQL:Mapper 文件 insert 语句设置 useGeneratedKeys=”true” keyProperty=”id” &n…
MyBatis 传递多个参数
方法一:使用map接口传递参数 严格来说,map适用几乎所有场景,但是我们用得不多。原因有两个:首先,map是一个键值对应的集合,使用者要通过阅读它的键,才能明了其作用;其次,使用…
MyBatis缓存机制
缓存机制减轻数据库压力,提高数据库性能 mybatis的缓存分为两级:一级缓存、二级缓存 一级缓存: 一级缓存为 sqlsesson 缓存,缓存的数据只在 SqlSession…
MyBatis时间timestamp做条件进行查询
首先要将条件 转换为 时间戳 long startTime = TimeUtil.parseTimestamp(start); long endTime = TimeUt…