什么框架都是: jar包 各种配置文件
配置文件:2种
核心配置文件(1个) sqlMapConfig.xml mybatis-config.xml
映射文件 (N个) PersonDao.xml
框架简介
架构的详细介绍
三层架构
软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:
持久层:主要完成与数据库相关的操作,即对数据库的增删改查。 因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO层。
业务层:主要根据功能需求完成业务逻辑的定义和实现。 因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。
表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。 因此,有人把表现层称之为web层或View层。
三层架构之间调用关系为:表现层调用业务层,业务层调用持久层。各层之间必然要进行数据交互,我们一般使用java实体对象来传递数据。
框架概念详解
(1)什么是框架
把重复的代码工作抽取出来,让程序员把精力专注在核心的业务代码实现上,专注于核心业务提高软件质量。
框架可以理解为半成品软件,框架做好以后,接下来在它基础上进行开发,提高开发效率
(2)常见的框架
Java世界中的框架非常的多,每一个框架都是为了解决某一部分或某些问题而存在的。下面列出在目前企业中 流行的几种框架(一定要注意他们是用来解决哪一层问题的):
持久层框架:专注于解决数据持久化的框架。常用的有MyBatis、hibernate、Spring jdbc等等。
表现层框架:专注于解决与用户交互的框架。常见的有struts2、Spring mvc等等。
全栈框架: 能在各层都给出解决方案的框架。比较著名的就是Spring。
这么多框架,我们怎么选择呢?
我们以企业中最常用的组合为准来学习Spring + Spring MVC + MyBatis(SSM)
MyBatis框架的介绍
ORM概述
ORM(object Relational Mapping)对象关系映射,是一个针对持久层的理论思想。
O----对象----类
R----关系----数据表
M----映射----在类和数据表之间建立的一一对应的关系(类名–>表名 属性名–>字段名)
总结:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。
什么是MyBatis
MyBatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。
MyBatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由MyBatis框架执行sql并将结果映射为java对象并返回。
MyBatis的优势
- 与JDBC相比,减少了50%以上的代码量。
- MyBatis是最简单的持久化框架,小巧并且简单易学。
- MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XM里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
- 提供XML标签,支持编写动态SQL语句。
- 提供映射标签,支持对象与数据库的ORM字段关系映射。
MyBatis快速入门 ibatis
开发步骤介绍
1、创建MyBatis_db数据库和person表
2、创建java项目,引入MyBatis坐标
3、创建User实体类
4、编写映射文件PersonMapper.xml
5、编写配置文件SqlMapConfig.xml
6、编写测试类
pom.xml导入MyBatis框架依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15