引入mybatis之前 回顾一下jdbc操作
sun公司jdbc一系列的接口规范,被各个数据库厂商实现,mysql厂商给我们提供规定驱动jar包
我们看一下这些代码:
有一些问题,
1.查询操作在我们的项目中经常出现,而对于原生的jdbc,我们返回结果是一个结果集,
我们还要遍历这个结果集,去每次创建一个对象,然后通过set方法给对象赋值,然后添加到list集合这种 显然是非常麻烦的。
2.我们配置信息以及sql语句写到了程序内,灵活性弱,硬编码形式
mybatis解决了以上的问题 帮我们简化了对数据库的操作
市场主流关于持久层框架 这个图有问题 看比例mybatis和mp占了70%?
taps:
对于一些硬编码的问题 mybatis提供了配置文件来解决
对于实体名和表名不一致的情况
对于mybatis无所谓,因为我们在xml或者用注解写sql,
例如select * from 表名
这个表名我们已经指定了
要说明的是
如果表列名和实体类属性名不一致 无法自动封装
调resultMap配置一下就可以
映射实体类属性和表列名
对于mybatisplus,可以在yml中global进行全局配置 比如去掉前缀tbl_
也可以单独对某个表配置 在实体类表名加上@Table
如果属性也不对应 加上@TableField
对于mybatis的动态sql提供了很多标签 记住常用的
对于mybatisplus 我们写动态sql 直接被封装到方法里
也就是这个条件为不为null,加到这个条件是
比如.eq(contion(boolean类型),实体类::get属性,属性值)
类似mybatis中if(test=“”)