Maven&MyBatis 浅学

1,Maven

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
        -提供了一套标准化的项目结构
        -提供了一套标准化的构建流程(编译,测试,打包,发布……)
        -提供了一套依赖管理机制
标准化的项目结构:
项目结构我们都知道,每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。我再eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便,如下图:前两个是以后开发经常使用的开发工具。

.Maven&MyBatis 浅学_第1张图片

 标准化的构建流程:

Maven&MyBatis 浅学_第2张图片

1.1 Maven简介

        Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。

Maven&MyBatis 浅学_第3张图片

        如上图所示就是Maven的模型,而我们先看紫色框框起来的部分,他就是用来完成 标准化构建流程 。如我们需要编译,Maven提供了一个编译插件供我们使用,我们需要打包,Maven就提供了一个打包插件提供我们使用等。 

Maven&MyBatis 浅学_第4张图片

上图中紫色框起来的部分,项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标,如下图所示是一个Maven项目:

Maven&MyBatis 浅学_第5张图片 依赖管理模型则是使用坐标来描述当前项目依赖哪儿些第三方jar包,如下图所示

Maven&MyBatis 浅学_第6张图片

1.1.2 仓库

        大家想想这样的场景,我们创建Maven项目,在项目中使用坐标来指定项目的依赖,那么依赖的jar包到底存储在什么地方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。
仓库分类
        -本地仓库:自己计算机上的一个目录
        -中央仓库:由Maven团队维护的全球唯一的仓库
                -地址: https://repo1.maven.org/maven2/
        -远程仓库(私服):一般由公司团队搭建的私有仓库


当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
        -如果有,则在项目直接引用;
        -如果没有,则去中央仓库中下载对应的jar包到本地仓库。

Maven&MyBatis 浅学_第7张图片

 如果还可以搭建远程仓库,将来jar包的查找顺序则变为:

本地仓库 --> 远程仓库--> 中央仓库

Maven&MyBatis 浅学_第8张图片

1.3 Maven基本使用

1.3.1 Maven 常用命令
        -compile :编译
        -clean:清理
        -test:测试
        -package:打包
        -install:安装

1.3.2 Maven 生命周期
Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件
Maven 对项目构建的生命周期划分为3套:
        -clean :清理工作。
        -default :核心工作,例如编译,测试,打包,安装等。
        -site : 产生报告,发布站点等。这套声明周期一般不会使用。
同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:

1.5 依赖管理

1.5.1 使用坐标引入jar包
使用坐标引入jar包的步骤:
        -在项目的 pom.xml 中编写 标签
        -在 标签中 使用 引入坐标
        -定义坐标的 groupId,artifactId,version



   
      mysql
      mysql-connector-java
      8.0.31
   

jar包导入成功

Maven&MyBatis 浅学_第9张图片

1.5.2 依赖范围

        通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境测试环境运行环境。如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。

Maven&MyBatis 浅学_第10张图片

那么 scope 都可以有哪些取值呢?

Maven&MyBatis 浅学_第11张图片

 -compile(默认值) :作用于编译环境、测试环境、运行环境。
-test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
-provided :作用于编译环境、测试环境。我们后面会学习 servlet-api ,在使用它时,必须scope设置为该值,不然运行时就会报错
-runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,当然不设置也没有任何问题

2,Mybatis

2.1 Mybatis概述

2.1.1 Mybatis概念
MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发

框架:
框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

2.1.3 Mybatis 优化
硬编码可以配置到配置文件
操作繁琐的地方mybatis都自动完成
如图所示

Maven&MyBatis 浅学_第12张图片

 2.2 Mybatis快速入门
需求:查询user表中所有的数据

Maven&MyBatis 浅学_第13张图片

1.创建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类

Maven&MyBatis 浅学_第14张图片

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 方法省略
}

 

2.创建模块,导入坐标

File -->  New --> Moudule --> New Module --> Maven

Maven&MyBatis 浅学_第15张图片

 Maven&MyBatis 浅学_第16张图片

 

在创建好的模块中的 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

 Maven&MyBatis 浅学_第17张图片

 

3.编写 MyBatis 核心配置文件

-- > 替换连接信息 解决硬编码问题
4.在模块下的 resources 目录下创建mybatis的配置文件 mybatis-config.xml

Maven&MyBatis 浅学_第18张图片

代码如下:

         a.需要配置数据库连接信息

         b.加载sql映射文件





    
    
        
            
            
                
                
                
                
                
            
        
    
        
            
            
        

4.sql映射文件

1)文件命名 :表名 + Mapper.xml

Maven&MyBatis 浅学_第19张图片

代码如下

        需要配置中的:

                namespace : 名称空间

                id : sql语句的唯一标识

                resultType :数据库对应的类的路径

                标签里可以写sql语句 //User类的路径 select * from tb_user;

 2)把sql映射文件路径加载到mybatis核心配置文件

 
     
     
 

5.编码

Maven&MyBatis 浅学_第20张图片

 代码如下:

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语句的名称空间唯一标识,如下图

Maven&MyBatis 浅学_第21张图片

 

IDEA中配置MySQL数据库连接

file ->settings ->plugins 选中marketplace 搜Database , 安装database navigator,重启idea

打开插件:View --> Tool Windows -->DB Browser

Maven&MyBatis 浅学_第22张图片

 左侧边栏中点击DB Browser-->MySQL

Maven&MyBatis 浅学_第23张图片

进行配置即可

Maven&MyBatis 浅学_第24张图片

 

 

你可能感兴趣的:(maven,java,intellij-idea)