最近在知乎读书复习刘增辉老师所著的《MyBatis从入门到精通》一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正!知乎读书可以通过火狐浏览器另存页面为“网页,全部”的方式永久保存你借阅的电子书。
作为一个正在自学Java的自动化专业本科生,在学习和实践过程中”趟了不少雷“,“走了不少弯路”。这本书首先是适合刚学完JavaSE知识后入门,不足之处是未能在整合过程中集成spring框架测试。为此我会将更新的IDEA版源码给出。
1.1 Mybatis简介
MyBatis是一款支持自定义SQL查询、存储过程和高级映射的持久层框架。消除了几乎所有JDBC代码和参数的手动设置以及结果集的检索。
MyBatis可以使用XML或注解进行配置和映射。它通过将参数映射到配置的SQL最终形成执行的SQL语句,最后将执行的SQL的结果映射成Java对象返回。
与其他的ORM(对象关系映射)框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。
MyBatis 支持声明式数据缓存( declarative data caching )。当一条 SQL 语句被标记为“可缓存”后,首次执行它时从数据库获取的所有数据会被存储在高速缓存中,后面再执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库。
- MyBatis官方GitHub地址为:https://github.com/mybatis
1.2 创建Maven项目
Maven是一个项目构建和管理工具。目前市面上很多(2018年以前出版)陈旧的Java参考书还停留在讲如何使用Eclipse开发工具,包括本书。不过自2018年之后IT培训毕业班的双元视频都在介绍如何使用IntelliJ IDEA开发。
因此我们要新建个Maven项目,使用IntelliJ IDEA 2018.3.6 新建Maven项目的过程如下:
+ Create New Project
注:JDK1.8 和 Maven3.6.2是需要用户解压安装并配置好系统环境变量,相关教程请参考黑马双元视频课的介绍。
我们新建完的Maven项目结构如下图所示:
默认生成的pom.xml文件其内容如下所示。
(此处省略,工具自动生成->无需记忆)
首先,设置源代码编码方式为UTF-8,配置如下。(推荐新手看:尚硅谷Java开发利器:IntelliJ IDEA的安装、配置与使用 ->编码格式如何在IDEA中配置成UTF-8)
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
接着,设置编译源代码的JDK版本,为了增大兼容范围使用的是JDK 1.8,配置如下。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version><!-- May, 2019 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> </plugins> </build>
还需要在配置文件pom.xml中添加一些依赖才能使接下来的工作顺利进行。
这里要添加最重要的Mybatis3依赖、接着还需要添加会用到的 MySql驱动、JUnit、、Log4j的依赖。
注:数据库依赖的version要和自己电脑安装的实际情况一致->高版本的数据库驱动比如8.0.17兼容5.6.45数据库,但是url具体的一些连接规则有变化。(比如需要serverTimezone=Asia/Shanghai)
可以通过 http://search.maven.org/ 或 http://mvnrepository.com/ 来查找依赖坐标。
junit 是一个单元测试框架,那么使用 Junit 能让我们快速的完成单元测试。下载地址: https://www.mvnjar.com/junit/junit/4.12/detail.html
mysql是一个数据库,Navicat是数据库可视化操作工具,两者需要先自行安装后再进行本实验流程。下载地址: https://www.mysql.com/downloads/
log4j是一个一款开源的日志框架,在项目中,我们一般会结合slf4j和log4j一起使用。 下载地址: http://logging.apache.org/log4j/1.2/download.html
slf4j是一个简单日记门面(simple logging Facade for java)可以为各种loging APIs提供一个简单统一的接口。 下载地址: https://www.slf4j.org/download.html
最终的pom.xml文件内容如下:
完成这个步骤后,MyBatis的基本开发环境就已经准备好了。
<?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>cn.bjut.mybatis</groupId> <artifactId>example</artifactId> <version>0.1-SNAPSHOT</version> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <!--日志相关--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version><!-- May, 2019 --> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>