一、Maven
1. 概念理解
Maven 是项目对象模型(POM),作为项目管理工具软件,能够凭借一小段描述信息对项目的构建、报告和文档进行管理。它的核心作用在于通过一段描述来自动化完成项目构建和管理相关工作,极大地提升了开发效率。
2. 使用原因
在以往的项目开发中,引入 jar 包是常见操作,但往往面临诸多问题。这些 jar 包从网上下载时,下载地址可能不统一,而且不同 jar 包之间还可能存在冲突。Maven 的出现就是为了解决这些困扰,它可以自动完成 jar 包的下载,有效避免了人工处理这些问题时可能出现的错误。
3. 原理探究
Maven 的工作原理涉及到对项目依赖的管理和处理,通过特定的机制确保项目所需的各种组件能够正确获取和整合。
4. 安装与配置
- 安装过程
从官方网站Download Apache Maven -- Maven获取安装包,下载完成后直接解压到指定目录,需注意该目录路径中不要包含中文。 - 环境变量配置
创建名为 MAVEN_HOME 的变量,其值为 maven 解压路径,然后在系统的 path 环境变量中添加 % MAVEN_HOME%\bin。配置完成后,通过在命令行输入 mvn -version 来验证环境变量是否配置成功。 - 仓库配置
合理配置本地仓库和远程仓库,明确项目所需 jar 包的存储和获取来源。
5. IDEA 关联与项目创建
- 在 IDEA 中进行设置,将其与本地安装的 Maven 进行关联,使 IDEA 能够识别并运用本地 Maven 的配置。
- 利用 IDEA 创建 Maven 结构的项目,包括 Maven 的 Java 工程和 JavaWeb 工程,为后续的开发工作搭建好框架。
普通Java 工程创建方法:
JavaWeb 工程创建方法
6.jar包地址
用于存储和管理 Maven 项目依赖库的在线仓库
将代码放到配置文件中
即可将将jar包下载到本地仓库。
二、MyBatis
1. 框架介绍
MyBatis 是一款出色的持久层框架,专注于处理与数据库的交互操作。它支持自定义 SQL、存储过程以及高级映射,为开发者提供了灵活且高效的数据库操作方式。通过简单的 XML 或注解配置,MyBatis 能够轻松地将 Java 中的实体类型、接口以及普通老式 Java 对象(POJO)映射为数据库中的记录,极大地简化了 JDBC 代码编写过程中繁琐的参数设置和结果集处理工作。
2. 使用原因
回顾传统的 JDBC 操作数据库的代码,会发现存在诸多不便之处。例如,需要手动设置占位符的值,并且在获取结果集后还得手动进行封装处理。而 MyBatis 的出现正是为了简化这些繁琐的操作,使 Java 操作数据库的代码更加简洁、高效,让开发者能够更专注于业务逻辑的实现。
3. 使用步骤
- 创建 Maven 工程并引入依赖
在 Maven 项目的 pom.xml 文件中添加必要的依赖,如 mysql-connector-java 用于连接 MySQL 数据库、junit 用于单元测试、lombok 简化实体类代码编写以及 mybatis 框架本身的依赖。 - 创建实体类
例如创建 Teacher 实体类,通过使用 @Data 注解自动生成常见方法,如 getter、setter、toString 等,简化实体类的开发。 - 编写 MyBatis 配置文件
在配置文件中设置数据库连接相关的参数,包括驱动类、连接 URL、用户名和密码等,为 MyBatis 与数据库的通信提供必要的信息。 - 编写映射文件
映射文件是编写 SQL 语句的地方,通过各种标签(如<select>、<delete>、<insert>、<update>)来定义不同的数据库操作。每个 SQL 标签都有其特定的属性,如 id 用于唯一标识 SQL 语句,resultType 指定返回结果的数据类型,同时可以使用占位符(如 #{id})来动态传递参数。 - 将映射文件配置到 MyBatis 配置文件中
确保 MyBatis 能够找到并加载编写好的映射文件,从而执行其中定义的 SQL 语句。 - 测试
在测试类中,首先读取 MyBatis 的配置文件,然后创建 SqlSessionFactory 工厂对象,通过该工厂获取 SqlSession 对象,进而执行编写好的 SQL 语句,并对执行结果进行相应的处理和验证。
4. CRUD 操作与接口绑定
- CRUD 操作实现
在映射文件中编写完整的增删改查(CRUD)SQL 语句,通过在测试类中调用 SqlSession 提供的相应方法来执行这些操作,并根据操作结果进行后续处理,如提交事务等。 - 接口绑定模式
接口绑定模式是 MyBatis 提供的一种更优雅的数据库操作方式。首先自定义接口,在接口中定义所需的数据库操作方法。然后编写映射文件,确保命名空间(namespace)与接口所在的包对应,SQL 标签的 id 与接口方法名一致。在测试类中,通过 sqlSession.getMapper (接口类.class) 获取接口的代理实现类,进而直接调用接口方法来完成数据库操作,这种方式不仅提高了代码的可读性,还增强了代码的可维护性。