zoukankan      html  css  js  c++  java
  • 如何在IDEA的maven项目中连接并使用MySQL8.0

    首先看一下我的基本的开发环境:

    • 操作系统:MacOS 10.13.5
    • 编辑器:IDEA 2018.3
    • 其他:MySQL8.0.15、Maven 3.3.9、JDK 1.8

    好,下面就正式开始:

    第一步:在IDEA中新建一个maven项目

    1. 使用骨架创建maven项目,此处选择:maven-archetype-quickstart

    使用骨架创建maven项目

    2. 填入GroupId和ArtifactId

    填入GroupId和ArtifactId

    3. 第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果settings.xml中配置了localRepository,则会自动填入,若没有则会显示默认的本地仓库

    选择相应maven文件位置

    4. 点击Finish即可成功创建maven项目

    点击Finish即可成功创建maven项目

    第二步:配置pom.xml

    在pom.xml中的标签内加入要用到的jar包在仓库中的坐标

    1. dom4j的jar包坐标

    <dependency>
      <groupId>org.dom4j</groupId>
      <artifactId>dom4j</artifactId>
      <version>2.1.1</version>
    </dependency>

    2. mysql的jar包坐标

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
        <scope>runtime</scope>
    </dependency>

    第三步:创建JDBC.xml配置文件并设置

    <?xml version='1.0' encoding='UTF-8'?>
    <accounts>
        <account>
            <url>jdbc:mysql://localhost:3306/mybase?useSSL=false&amp;serverTimezone=CTT</url>
            <user>root</user>
            <password>123456</password>
        </account>
    </accounts>

    在src下创建JDBC.xml,这个xml文件中放置的是数据库连接时要使用的信息,包括url、root、password。因为我使用的是MySQL8.0,所以url和之前版本的有所不同,其中mybase是要连接的数据库的名称,&amp;则是&的转义字符

    第四步:创建JDBCUtils和TestJDBCUtils

    在com.langsin.jdbcutil包下创建JDBCUtils.java和TestJDBCUtils.java两个文件

    maven_jdbc项目文件图

    第五步:写入JDBCUtils和TestJDBCUtils

    package com.langsin.jdbcutil;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import java.sql.*;
    
    public class JDBCUtils {
      private JDBCUtils {}
      private static Connection con;
    
      static {
        try {
          //初始化MySQL的Driver类
          Class.forName("com.mysql.cj.jdbc.Driver");
          //通过dom4j得到xml文件中连接数据库的信息
          SAXReader reader = new SAXReader();
          Document doc = reader.read("src/JDBC.xml");
          Element root = doc.getRootElement();
          Element ele = root.element("account");
          String url = ele.element("url");
          String user = ele.element("user");
          String password = ele.element("password");
          //连接数据库
          con = DriverManager.getConnection(url, user, password);
        } catch(Exception e) {
          throw new RuntimeException(e + ",数据库连接失败!");
        }
      }
    
      public static Connection getConnection() {
        return con;
      }
    
      public static void close(Connection con, Statement state) {
        if(con != null) {
          try {
            con.close();
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
        if(state != null) {
          try {
            state.close();
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
      }
    
      public static void close(Connection con, Statement state, ResultSet rs) {
        if(con != null) {
          try {
            con.close();
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
        if(state != null) {
          try {
            state.close();
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }    
        if(rs != null) {
          try {
            rs.close();
          } catch (SQLException e) {
            e.printStackTrace();
          }
        }
      }
    }
    package com.langsin.jdbcutil;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class TestJDBCUtils {
      public static void main(String[] args) {
        Connection con = JDBCUtils.getConnection();
        String sql = "SELECT * FROM sort";
        //创建PreparedStatement对象,并将sql语句发送到数据库
        PreparedStatement pst = con.prepareStatement(sql);
        //取得执行后的结果集
        ResultSet rs = pst.executeQuery();
        //输出sort表中第二列的所有数据
        while(rs.next()) {
          System.out.println(rs.getString(2));
        }
        JDBCUtils.close(con, pst, rs);
      }
    }

    好了,到此只要执行程序,控制台上就会输出我们想要的结果了。

  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/taiyii/p/12263511.html
Copyright © 2011-2022 走看看