SSM框架之Mybatis基本概念及使用方法
SSM
SpingMVC + Spring + Mybatis
SpringMVC 充当Servlet 可以理解为SpringMVC是Spring的WEB支持
Mybatis 充当Dao层
Sping 充当一个润滑油的角色
MybatisPlus 国内的团队 baomidou 可以写sql 也可以不写sql 处理复杂需求介于Mybatis和Hibernate之间
Hibernate 充当Dao层 不需要写sql 自动生成并执行sql语句
Mybatis
作用
-
是一款优秀的持久层框架 支持定制化的sql 存储过程以及高级映射
-
之前我们学过的所有的JDBC代码和手动设置参数获取结果集 都不用写了
-
使用简单的XML配置文件或者注解 来映射原生信息 更加的方便
持久化
持久化把数据存储在磁盘而不是内存
-
程序产生的数据首先都是在内存
-
内存不可靠 我们需要一些技术把数据永久存储在硬盘上
持久层
之前的Dao层 之前通过反射 通过泛型 通用的Dao 我们在操作不同的表或者逻辑的时候 我们之前会创建一个接口 在创建接口的实现类 实际上这个dao层 就叫持久层(让数据持久化的层)
优缺点
-
sql语句与代码分离 寄存于xml文件中(最牛X的特点)
-
优点:便于维护管理 不用在java代码中找sql语句
-
缺点:不能通过打断点的方式调试,通过日志来解决这个问题
-
-
动态sql语句(最牛X的特点)
-
优点:通过逻辑标签代替编写逻辑代码 生成不同的sql
-
缺点:拼接一些比较复杂的sql语句时,没有直接拼接更直观
-
-
查询结果和java对象自动映射
-
优点:保证名称之间的对应关系 可以下划线和驼峰自动转换
-
缺点:对开发人员的sql语句以来很强
-
XML配置文件
约束
保证我们的xml能够使用哪些标签 保证xml的有效性
主配置文件xml
另外一个xml
第一次使用Mybatis 需要两个文件
-
一个接口类mapper(就是咱们之前写的dao)java文件 不需要我们写实现类
-
一个接口对应一个xml文件
-
两个文件的名字最好相同 UserMapper.java -> UserMapper.xml
-
框架会根据mapper和xml联合 通过代理模式创建实现类
-
一般情况下 我们管接口对应的xml的文件叫映射文件
映射文件最终要交给mybatis去处理,所有的映射文件需要在主配置文件中进行注册。
测试类
@Before 在所有方法执行之前执行
@after 在所有方法执行之后执行
public class UserMapperTest {
SqlSession session;
UserMapper mapper
Mybatis有两种方式可以提交事务
1.通过session调用commit方法
2.关闭session
在Mybatis的映射文件中 $和#的区别?
$ 底层使用的是Statement 拼串
·#· 底层使用的时PrepareStatement 预编译 #相当于占位符
如果想要做模糊查询 在我们java代码层面去解决%问题

浙公网安备 33010602011771号