什么是 Mybatis
1.Mybatis是半自动对象关系映射,在查询关系对象或关联集合对象时,需要手动编写sql来完成所以称为半自动ORM映射工具。(Hibernate是全自动)Mybatis可以通过自己编写sql实现更多功能。
2.Mybatis几乎避免了所有JDBC代码 和手动设置参数和获取结果集的过程
3.Mybatis可以通过xml或注解来配置和映射原生信息
4.Mybatis官方文档 https://mybatis.org/mybatis-3/zh/getting-started.html
Mybatis基础增删改查
Mybatis配置文件
MybatisUtil工具类包
实体类
接口Mapper
Mapper映射文件
实现类
万能的Map
如果参数过多,我们可以考虑直接使用Map实现,如果参数比较少,直接传递参数即可
模糊查询
1 在java代码执行和的过程中 传递通配符 % %
2.在sql拼接中使用通配符
3.concat
select * from user where name concat('%',#{id},'%')
配置解析
环境配置(environments)
可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
Mybatis默认的事务管理器是JDBC 连接池POOLED
配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过default指定)
属性(properties)
配置文件优先级问题
可以直接引入外部文件
可以在其中增加一些属性配置
如果两个文件有同一字段 优先使用外部配置文件的
类型别名(typeAliases)
Mapper映射器
生命周期和作用域
SqlSessionFactoryBuilder 的作用在于创建 SqlSessionFactory,创建成功后,SqlSessionFactoryBuilder 就失去了作用()
SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)
SqlSessionFactory可以被认为是一个数据库连接池 作用为创建sqlSession对象 一旦创建SqlSessionFactory对象 就要长期保存
SqlSessionFactory 的生命周期就等同于 MyBatis 的应用周期。
SqlSessionFactory 作为一个单例