原生JDBC操作数据库的流程
- 加载驱动
- 获取链接 connection
- 获取statement
- 设置sql
- 给占位符 set值
- 执行sql,获取结果集
- 对结果集进行解析、封装
- 释放资源
原生的jdbc操作数据库的缺点:
- 频繁的进行获取链接、关闭链接,资源浪费。 数据库连接池
- sql语句属于硬编码,维护不方便。并且需求变得可能性大,要经常的修改sql
- 占位符设置参数也属于硬编码,维护不方便
- 结果集解析过程也是硬编码,希望是能够自动的封装成我们自己开发的pojo对象中去
mybatis
mybatis 是一个持久层框架 ORM,他可以对jdbc的操作过程进行封装,使开发者只需关注sql本身,而无需去处理 注册驱动、获取链接、获取statement、结果集解析、资源释放等工作。
ORM :Object Ralational Mapping 对象关系映射
简单的说,是通过描述对象和关系数据库之间的元数据的映射关系,将java中的对象持久化到关系数据库中。
mybatis架构
mybatis配置
- 全局配置文件mybatis.xml(名字任意)
配置mybatis的运行环境,包括连接池、事务等。 - 配置映射文件(配置sql)mapper.xml
- SqlSessionFactory(会话工厂,通过配置文件获取的)
创建SqlSession。 - SqlSession(会话)
操作数据库。 - Executor(执行器)
sqlSession是通过执行器来操作数据库的。 - mapped Statement(底层封装对象)
对数据库的操作进行封装,包括sql、输入参数、输出结果。
支持的输入输出参数类型
-
java基本类型
-
hashmap
-
自定义pojo对象