前置内容-2.Maven快速上手

2022-04-12  本文已影响0人  Blacol

什么是Maven

Maven之一种组件管理工具。在学习Java时需要将一些jar包导入到项目中。此时你就需要四处搜索各种jar包。使用maven之后你不需要去寻找jar包,你只需要知道jar包的坐标它就会自己下载jar包并将它导入到项目中。大大提高了开发效率。

Maven仓库

Maven之所以可以自动下载Jar包是因为它有一个官方仓库。Maven的仓库体系见下图:


仓库体系

它的工作流程是这样的:


Maven工作流程

项目先在本地仓库中查找jar包,如果存在jar包则导入项目中,如果不存在则在中央仓库中查找jar包,如果有jar包则下载到本地仓库再导入到项目中,如果中央仓库中也没有jar包则报错。

如何告诉maven要导入哪个jar包呢?
通过maven项目中的pom.xml文件就可以告诉maven要下载哪个jar包了。但在此之前请先确认项目是否支持maven。同时你还需要知道jar包的坐标。
jar包坐标的查找需要用到一个网站:https://mvnrepository.com/ 在这里你可以找到你想要的jar包的坐标。下面的实操会介绍该网站的使用方法。

使用IDEA搭建一个Maven项目并实现数据库的操作

  1. 打开IDEA(这里使用2021.3版本,2019.x、2020.x和2021.x版本的都可以),点击新建项目,选择maven,点击下一步
  2. 随便输入一个项目名并选择项目位置然后点击工作坐标前面的小三角


    步骤2

    打开后就可以看到该项目的坐标


    坐标
    如果要自己制作jar包并发布出去就要用到这个坐标。现阶段并不需要,随意直接点击完成即可。
  3. 创建完成项目后,在右下角会有一个读条,等它读完。(刚开始会非常慢,多等一等,不要关掉项目!!!)


    步骤3

    读条完毕后会有图片中所示的错误,我们不用管它,如果看着碍眼点击IDEA右边的maven选项卡,点击刷新按钮刷新一下这个错误就没了。

  4. 点击IDEA左边的项目选项卡,找到pom.xml文件,打开它。
  5. 在<properties>标签下面输入<dependencies>标签,在dependencies标签中再输入<dependency>此时,idea会自动帮你生成坐标标签。
    步骤5
    其中groupId就是组ID,一般以公司域名的倒序命名。artifactId是工件ID,可以理解为Jar包的名字。version是jar包的版本,目前没有在图片中展示出来是因为我们还没确定jar包的坐标。当给定了groupId、artifactId、version后jar包的坐标也就确定了。
    为了操作数据库需要链接数据库驱动。但我们不知道数据库驱动jar包的坐标,此时就需要用到网站https://mvnrepository.com/
  6. 进入https://mvnrepository.com/,搜索mysql
    步骤6-1
    找到MySQL Connector/J并点击名字或者图标
    步骤6-2
    在下面列举出的一堆版本中选择和自己数据库版本相符的或者近似的版本然后点进去。我用的Mysql是8.0.28版,那么驱动就可以使用8.0.X版本。(如果数据库是5.X,往下翻能找到5.X的驱动)
    步骤6-3
    将红框中的部分复制下来,粘贴到pom.xml中。最后的pom文件就变成了下面这样。
    步骤6-4
    右上角还出现了一个小m图标,点击它就可以刷新maven的依赖情况了。
    (我们通常将jar包称之为依赖,maven在导入一个依赖时还会导入该依赖所依赖的依赖(举个例子:A.jar需要依赖B.jar,那么在导入A.jar时还会同时导入B.jar。)当然,maven有一套自己的导入规则,并不是所有的依赖都会被导入,这一点需要注意)
  7. 等待依赖导入完毕。
  8. 在src/main/java中创建一个软件包,包名随意。创建完毕后再在包下创建一个类,名字叫做Main.java


    步骤8
  9. 在Main类中写入下面代码:
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String url="jdbc:mysql:///mavenDemo";//本地数据库的名称
        String username="数据库用户名";
        String password="数据库密码";
        String driverName="com.mysql.cj.jdbc.Driver";
        Class.forName(driverName);
        Connection connection = DriverManager.getConnection(url, username, password);
        String sql="insert into user values(?,?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, UUID.randomUUID().toString().replaceAll("-","").substring(0,15));
        preparedStatement.setString(2,"张三");
        preparedStatement.setInt(3,18);
        preparedStatement.execute();
        sql="select * from user";
        preparedStatement= connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()){
            System.out.println("Id:"+resultSet.getString("id")+" name:"+resultSet.getString("name")
            +" age:"+resultSet.getInt("age"));
        }
    }
    
  10. 创建数据库和表
    create schema mavenDemo collate utf8mb4_0900_ai_ci;
    create table user
    (
        id   varchar(15) not null
        primary key,
        name varchar(30) null,
        age  int         null,
        constraint user_id_uindex
        unique (id)
    );
    
  11. 运行Main函数。


    运行结果
上一篇下一篇

猜你喜欢

热点阅读