本文参考mybatis官方文档,做出大致解析
mybatis的git地址:https://github.com/mybatis/mybatis-3
官方文档url:https://mybatis.org/mybatis-3/
mybatis框架是什么?有什么优点?
mybaties==》也叫Ibaties 它是一个开源,持久化,轻量级的框架
JDBC – SQL夹在Java代码块里,耦合度高导致硬编码内伤 – 维护不易且实际开发需求中sql是有变化,频繁修改的情况多见
Hibernate和JPA – 长难复杂SQL,对于Hibernate而言处理也 不容易 – 内部自动生产的SQL,不容易做特殊优化。 – 基于全映 射的全自动框架,大量字段的POJO进行部分映射时比较困难。 导致数据库性能下降。
对开发人员而言,核心sql还是需要自己优化
sql和java编码分开,功能边界清晰,一个专注业务、 一个专注数据。
-
全局配置文件详解:configuration(配置)
- 编写前准备:
- 导入mybaties所需要的jar包:mybatis-3.4.1.jar
- 导入访问数据库所需要的jar包:mysql-connector-java-5.1.37-bin.jar
- 编写全局配置文件,导入dtd
- 举例说明导入dtd文件,具有提示功能
eclipse或者myeclipse,找到window-->Preferences-->搜索xml-->xml Catalog后,如下图操作:
标签详解
properties(属性):
mybatis可以使用properties来引入外部properties配置文件的内容;
- resource:引入类路径下的资源,类路径就是源码包下的文件,如src根目录下
- url:引入网络路径或者磁盘路径下的资源
举例说明
<properties resource="dbconfig.properties"></properties>
settings包含很多重要的设置项
- setting:用来设置每一个设置项
- name:设置项名
- value:设置项取值
举例说明
开启驼峰命名,如数据库列表是dept_name==>javabean中就可以写成,deptId,由于mybatis中有自定义高级映射【基于了解程度】
<settings>
<!--开启驼峰命名法-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--开启懒加载,延迟加载,分步查询或者按需查询sql语句-->
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings> -->
typeAliases:别名处理器:可以为我们的java类型起别名,别名不区分大小写
举例说明
<typeAliases>
<!-- 1、typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写;employee
alias:指定新的别名
-->
<!-- <typeAlias type="com.oracle.mybatis.bean.Employee" alias="emp"/> -->
<!-- 2、package:为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一