(亲,总算不用写JDBC了呜呜呜呜----------)
MYBATIS框架:
1.持久层框架:和数据库打交道的,处理增删改查数据
2.消除了传统JDBC的缺点:频繁写数据库连接,预处理准备prepared Statement语句,查询结果,释放资源链接等 繁琐的语句
mybatis更注重的是 sql语句本身的要求,让我们更多的精力放在业务处理的方面,而不是写那些JDBC固定的套路语句
3.对象关系映射ORM
解决的是数据库表的字段 和 JavaBean实体类的属性 之间的关系映射问题
4.mybatis的模型框架
我们可以看出 mybatis 实体类POJO 和 数据库交互的dao接口,但是我们没有了dao层的实现类,而是使用了xml文件来解决dao层实现类,利用配置文件来生成接口的代理对象,从而进行dao层功能的实现
4.我们开始mybatis
首先,进行核心的环境搭建
创建一个普通的maven工程,注意联网,好让我们的工具去阿里云仓库下载相关的包
在pom.xml中引入以下的依赖
pom.xml中填入以下的代码:
<dependencies>
<!-- 导入依赖 mybatis 和 mysql junit-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- 偷懒神器lombox 主要用于实体类的简化-->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- 在build中配置resources, 以防止我们资源导出失败的问题 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
以上代码的:
1.导入mysql数据库依赖
2.导入mybatis的依赖
3.导入junit测试环境的依赖
4.导入lombok的依赖
5.配置build中配置resources, 以防止我们资源导出失败的问题(我们maven项目都可以导入这个依赖,防止资源导出的一系列魔鬼问题)
=================================================================
然后我们配置好项目的总体环境后我们开始创建一个模块,进行初学
我们先在resource文件夹下创建mybatis-config.xml的配置文件,这里是我们的模块核心配置文件
主要包括:我们模块的配置configuration 和 sql映射文件的注册
<?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>
<properties resource="db.properties"/>
<settings>
<!-- 开启驼峰命名规则 将数据库字段下划线转为空白 变为驼峰命名-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="cacheEnabled" value="true"/>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 注意使用class进行注册的时候 接口和它的Mapper文件必须同名 且在同一个包下-->
<mapper class="com.dao.BlogMapper"/>
</mappers>
</configuration>
再创建一个db.properties文件来表示数据库的连接信息
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=sdfasd
我们解析以下这个mybatis-comfig.xml配置文件信息
configuration标签 表示核心配置文件
properties 标签引入外部的properties 文件信息 例如数据库的链接信息我们可以写在一个外部的文件中,然后引入获取
setting标签进行一些设置信息包括 驼峰命名映射的开启 ,是否缓存的配置,还有日志的使用等等
environment标签就是数据库的环境设置 包括事务的管理 和数据源
最重要的就是mappers标签来进行sqlmapper.xml映射文件的注册,每一个sql映射文件都要在此处注册