文章目录
Mybatis是什么?
Mybatis是一个框架,最开始源自Apache的一个开源的项目ibatis,在2010年6月这个项目将由由Apache Software Foundation 迁移到了 Google Code,随着开发团队转投到 Google Code 旗下,iBatis3.x正式更名为MyBatis。
Mybatis是一个基于Java的持久层的框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects (DAO)。
持久层,就是数据访问层,就是后端对数据库的访问,数据的交互。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJO (Plain Old Java Objects,普通的Java对象) 映射成数据库中的记录。
是一种 ORM(ORM Object Relational Mapping 对象关系映射)实现.
Object==>就是java对象、Relational==>就是数据库表,Mapping==>映射
就是让java对象与数据库的表之间产生一种映射。
Mybatis 将基本的 JDBC 常用接口封装,对外提供操作即可。
Mybatis封装了一些对数据操作的一些接口,来代替jdbc。Mybatis就是对jdbc进行的一种轻量级的封装,简化了操作
Mybatis 中文官网 https://mybatis.org/mybatis-3/zh/getting-started.html
传统jdbc编程历程
- 加载数据库驱动
- 创建并获取数据库链接
- 创建 statement 对象
- 拼写 sql 语句
- 设置 sql 语句中的占位符的值
- 执行 sql 语句并获取结果
- 对 sql 执行结果进行解析处理
- 释放资源
经过一系列复杂的过程才能创建使用后端对数据库的使用
jdbc在编程中所遇到的问题
- 数据库连接的创建、释放频繁造成系统资源浪费从而影响系统性能,如果使 用数据库连接池可解决该问题。
- SQL 语句编写在 Java 代码中,这种硬编码造成代码不易维护,当 SQL 变动时需要修改 java 源代码。
- 使用 preparedStatement 向占位符传参数存在硬编码,因为 SQL 语句的 where 条件中占位符的个数可能会变化,修改 SQL 还要修改 Java 源代码, 系统不易维护。
- 对结果集解析存在硬编码,SQL 语句变化导致解析代码变化,系统不易维护。
总之就是特别麻烦
MyBatis 架构
MyBatis 环境的搭建
导入MyBatis 的jar包和mysql的驱动
导入mysql的驱动是因为要和数据库做连接,这里使用的数据库是mysql。
打开idea先要创建一个maven项目
Maven是什么,详细了解>>>
创建好Maven后,就要导入所需要的Mybatis所依赖的jar的驱动包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
再导进mysql所需要的jar包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
也可以去maven 仓库官网http://mvnrepository.com/
在此官网寻找自己所需开发jar包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>mybatispro</artifactId>
<version>1.0-SNAPSHOT</version>
<name>mybatispro</name>
<packaging>war</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<!--Mybatis的jar包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!--mysql的jar包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.0</version