1.1 框架
包含 jar包 ,文档 , 源码,代码实例....
1.2 Mybatis 概述
1.2.1 简介
是一个优秀的基于Java持久层框架,它内部封装了JDBC,使用者只需要关注SQL语句本身。
Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过Java对象和Statement中SQL的动态参数映射生成最终执行的SQL语句、最后由MyBatis框架执行SQL并将结果映射成Java对象并返回。
1.2.2 MyBatis与Hibernate
略。。
ORM
MyBatis 与H相比有以下几个特点:
(1) XML文件中插入SQL语句,实现SQL语句与代码分离,易于维护
(2) 更灵活的实现SQL语句,能实现更高效,能完成复杂查询。
(3) 简单,易于学习,易于使用,上手快。
1.2.3 MyBatis 体系结构
接口层:提供了一套API,增删改查(调用的是下边的东西)
数据处理层:
参数映射:把传来的数据打散
SQL解析:把SQL从XML配置文件中读取出来,再把参数值放进去,形成真正要执行的SQL
SQL执行:执行器(分析源码)
结果映射:自动封装对象
基础支持层:
连接管理
事务管理
配置加载:SQL、数据库连接四要素(:驱动、URL、用户名、密码)
缓存处理
配置框架
1.3 MyBatis 工作原理
ORM框架
Application:O(Object)
MyBatis框架:M(Mapping)
API:增删改查
JDBC:API调用(里边有SQL语句)
mapper.xml(主配置文件):我们写的SQL语句,被加载到JDBC,然后就可以操作数据库
mybatis.xml(映射文件):数据库连接的四要素、映射文件,mapper文件映射到mybatis文件中。
这两个配置文件需要注册,XML文件加载到内存
DB:database R(RelationShip)
第一个程序:
约束文件----xml文件 约束关系通过配置文件头来建立
* :>=0
+ : >=1
? : <=1
空: = 1
mapper.xml
<mapper namespace="test"> namespace 的作用:就是<nsert>...增删改查的id的父名称
增删改:可以传入参数,ParamterType制定参数类型,可以省略不写,一般不写
<insert ParameterType = "Student">
insert into students(name,age,score) values(#{name},#{age},#{score})
</insert>
使用反射机制
自动将传入的参数Student打散
查询:ResultType不能省略,指定封装成的对象
主配置文件mybatis.xml
jdbc属性文件的位置 <!-- 注册DB连接四要素属性文件 -->
<properties resource="jdbc.properties"/>
<properties resource="jdbc.properties"/>
<!-- 定义类型别名 -->
<typeAliases>
<!-- 将指定包中所有类的简单类名当作其别名 -->
<package name="com.bjpowernode.beans"/>
</typeAliases>
<!-- 配置运行环境 -->
<environments default="testEM">
<environment id="testEM">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 注册映射文件 -->
<mappers>
<mapper resource="com/bjpowernode/dao/mapper.xml"/>
</mappers>
插入insert #{}里边东西不能随便写(对象类型 如Student)
基本数据类型 #{随便写}