Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
-提供了一套标准化的项目结构
-提供了一套标准化的构建流程(编译,测试,打包,发布……)
-提供了一套依赖管理机制
标准化的项目结构:
项目结构我们都知道,每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。我再eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便,如下图:前两个是以后开发经常使用的开发工具。
标准化的构建流程:
Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
如上图所示就是Maven的模型,而我们先看紫色框框起来的部分,他就是用来完成 标准化构建流程 。如我们需要编译,Maven提供了一个编译插件供我们使用,我们需要打包,Maven就提供了一个打包插件提供我们使用等。
上图中紫色框起来的部分,项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标,如下图所示是一个Maven项目:
依赖管理模型则是使用坐标来描述当前项目依赖哪儿些第三方jar包,如下图所示
大家想想这样的场景,我们创建Maven项目,在项目中使用坐标来指定项目的依赖,那么依赖的jar包到底存储在什么地方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。
仓库分类:
-本地仓库:自己计算机上的一个目录
-中央仓库:由Maven团队维护的全球唯一的仓库
-地址: https://repo1.maven.org/maven2/
-远程仓库(私服):一般由公司团队搭建的私有仓库
当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
-如果有,则在项目直接引用;
-如果没有,则去中央仓库中下载对应的jar包到本地仓库。
如果还可以搭建远程仓库,将来jar包的查找顺序则变为:
本地仓库 --> 远程仓库--> 中央仓库
1.3.1 Maven 常用命令
-compile :编译
-clean:清理
-test:测试
-package:打包
-install:安装
1.3.2 Maven 生命周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
Maven 对项目构建的生命周期划分为3套:
-clean :清理工作。
-default :核心工作,例如编译,测试,打包,安装等。
-site : 产生报告,发布站点等。这套声明周期一般不会使用。
同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:
1.5.1 使用坐标引入jar包
使用坐标引入jar包的步骤:
-在项目的 pom.xml 中编写 标签
-在 标签中 使用 引入坐标
-定义坐标的 groupId,artifactId,version
mysql
mysql-connector-java
8.0.31
jar包导入成功
1.5.2 依赖范围
通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。
那么 scope 都可以有哪些取值呢?
-compile(默认值) :作用于编译环境、测试环境、运行环境。
-test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
-provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须scope设置为该值,不然运行时就会报错
-runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题
2.1.1 Mybatis概念
MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发
框架:
框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础之上构建软件编写更加高效、规范、通用、可扩展
2.1.3 Mybatis 优化
硬编码可以配置到配置文件
操作繁琐的地方mybatis都自动完成
如图所示
2.2 Mybatis快速入门
需求:查询user表中所有的数据
create database mybatis;
use mybatis;
drop table if exists tb_user;
create table tb_user(
id int primary key auto_increment,
username varchar(20),
password varchar(20),
gender char(1),
addr varchar(30)
);
INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');
创建user类
这一步应该在后面创建模块里,把这一步放在这里为了能对照mysql表创建user类
package com.itheima.pojo;
public class User {
private int id;
private String username;
private String password;
private String gender;
private String addr;
//getter setter toString 方法省略
}
File --> New --> Moudule --> New Module --> Maven
在创建好的模块中的 pom.xml 配置文件中添加依赖的坐标
4.0.0
org.example
mybatistest1
1.0-SNAPSHOT
18
18
UTF-8
conf.mysql
mysql-connector-java
5.1.32
org.mybatis
mybatis
3.5.11
junit
junit
4.13
test
org.slf4j
slf4j-api
1.7.20
ch.qos.logback
logback-classic
1.2.3
ch.qos.logback
logback-core
1.2.3
把logback文件粘贴到src-->main-->java-->resources
-- > 替换连接信息 解决硬编码问题
4.在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml
代码如下:
a.需要配置数据库连接信息
b.加载sql映射文件
1)文件命名 :表名 + Mapper.xml
代码如下
需要配置
namespace : 名称空间
id : sql语句的唯一标识
resultType :数据库对应的类的路径
2)把sql映射文件路径加载到mybatis核心配置文件中
代码如下:
package com.itheima;
import com.itheima.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* Mybatis 快速入门代码
*/
public class MyBatisDemo {
public static void main(String[] args) throws IOException {
//1.加载mybatis的核心配置文件,获取SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取SqlSession对象,用它来执行sql语句
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.执行sql语句 直接打包成List集合
List users = sqlSession.selectList("test.selectAll");
System.out.println(users);
//4.释放资源
sqlSession.close();
}
}
分析
//3.执行sql语句 直接打包成List集合
List users = sqlSession.selectList("test.selectAll");
selectList()方法,只需要传入sql语句的名称空间和唯一标识,如下图
file ->settings ->plugins 选中marketplace 搜Database , 安装database navigator,重启idea
打开插件:View --> Tool Windows -->DB Browser
左侧边栏中点击DB Browser-->MySQL
进行配置即可