Mybatis
mybatis的目的
替换jdbc
之前的使用jdbc:
1)大量重复代码
2)sql写在代码中,硬编码
3)数据库:关系型数据库,以表来组织数据 ,一条记录,一个字段,表与表关系使用外键关联
java:面向对象的,类,对象,属性,关联属性
mybatis 前身
ibatis, 托管在github
下载: https://github.com/mybatis/mybatis-3/releases
使用maven管理依赖
mybatis框架
持久层(DAO)的框架, 封装jdbc, 底层使用还是jdbc, 让程序员只关注SQL,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
mybatis执行流程
第一步: 加载解析: mybatis的主配置文件:mybatis-config.xml( 配置数据源, 事务管理),
第二步: 通过第一步解析的结果,创建SqlSessionFactory对象, 构建者模式: SqlSessionFactoryBuilder
第三步: 通过SqlSessionFactory对象创建SqlSession(使用的核心对象)
第四步: 程序员使用sqlSession对象,操作数据库, 对数据库进行CURD
select * from xxx where id = ? --- mybatis: 一个statement
第五步: 关闭SqlSession, 如果是增删改, 需要手动提交事务
搭配mybatis环境
1.父项目添加依赖(没有父项目可以直接添加到子项目)
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<junit.version>4.12</junit.version>
<mybatis.version>3.5.6</mybatis.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
2.子项目添加依赖(没有父项目就不用操作该步骤)
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
</dependencies>
3.添加配置文件
mybatis-config.xml:用于读取数据库的信息,以及连接数据库
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<!-- 可以配置多个environment -->
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/数据库的名称" />
<property name="username" value=账户 />
<property name="password" value=密码 />
</dataSource>
</environment>
</environments>
</configuration>