在IDEA的maven项目中连接并使用MySQL8.0的方法教程

以下是在IDEA的maven项目中连接并使用MySQL8.0的方法教程的完整攻略:

步骤一:安装并配置MySQL

  1. 确认已安装MySQL 8.0或以上版本,并启动MySQL服务。
  2. 使用命令行或可视化工具如Navicat等创建一个数据库,例如“testdb”。
  3. 创建一个数据库用户,并授予该用户对“testdb”数据库的全部权限。

步骤二:添加Maven依赖

  1. 按照惯例,将MySQL的驱动程序添加到项目POM文件中。
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.13</version>
</dependency>
  1. 在IDEA中使用maven命令更新项目,以确保依赖正确导入。

步骤三:编写代码实现连接

使用以下Java代码实现MySQL连接:

import java.sql.*;

public class JdbcTest {
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/testdb";

    static final String USER = "username";
    static final String PASS = "password";

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);

            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // 执行查询
            System.out.println("实例化Statement对象...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name FROM student";
            ResultSet rs = stmt.executeQuery(sql);

            // 打印结果集
            while (rs.next()) {
                // 通过字段检索
                int id = rs.getInt("id");
                String name = rs.getString("name");

                // 打印结果
                System.out.print("ID: " + id);
                System.out.print(", Name: " + name);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            // 处理 JDBC 错误
            se.printStackTrace();
        } catch (Exception e) {
            // 处理 Class.forName 错误
            e.printStackTrace();
        } finally {
            // 关闭资源
            try {
                if (stmt != null) stmt.close();
            } catch (SQLException se2) {
            }// 什么都不做
            try {
                if (conn != null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

其中,JDBC_DRIVERDB_URL需要根据MySQL版本及连接信息进行修改,USERPASS分别为数据库用户名和密码。代码的主体逻辑是连接到本地的testdb数据库,读取其中的student表并输出结果。

示例说明

  1. 示例一:插入数据到数据库

若要将数据插入到数据表中,只需按照以下步骤进行:

(1)修改代码,将SQL语句改为插入语句。例如,我们要新增一条id为10,name为“Tom”的数据,修改SQL语句如下:

String sql;
sql = "INSERT INTO student (id, name) VALUES (10, 'Tom')";
stmt.executeUpdate(sql);

(2)重新编译并运行程序。新数据将会被插入到数据库中。

  1. 示例二:使用预处理语句防范SQL注入攻击

在实际开发过程中,为了避免SQL注入攻击,我们需要使用预处理语句。修改代码如下:

import java.sql.*;
public class JdbcTest3 {
    static final String JDBC_DRIVER="com.mysql.cj.jdbc.Driver";
    static final String DB_URL="jdbc:mysql://localhost:3306/testdb";
    static final String USER="username";
    static final String PASS="password";
    public static void main(String[] args){
        Connection conn=null;
        PreparedStatement stmt=null;
        try{
            Class.forName(JDBC_DRIVER);
            conn=DriverManager.getConnection(DB_URL,USER,PASS);
            String sql="SELECT id,name FROM student WHERE id=?";
            stmt=conn.prepareStatement(sql);
            stmt.setInt(1,3);
            ResultSet rs=stmt.executeQuery();
            while(rs.next()){
                int id=rs.getInt("id");
                String name=rs.getString("name");
                System.out.print("ID: "+id+", Name: "+name);
                System.out.print("\n");
            }
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            se.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
    }
}

在预处理语句中,我们使用占位符(即?)代替了实际的参数值,然后使用PreparedStatement对象的setXXX()方法为占位符赋值,可以有效防范SQL注入攻击。在此示例中,SQL语句并不复杂,所以可能看不出预处理语句的优势,但在处理复杂的SQL语句时,它将显得尤为重要。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在IDEA的maven项目中连接并使用MySQL8.0的方法教程 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • 站长必看!赚钱网站资源贴

    站长必看!赚钱网站资源贴 一、引言 作为一个网站站长,赚钱是我们始终追求的一个目标。然而,在众多的网络赚钱方法中选择适合自己的方式并不是一件容易的事情。因此,本文针对网站站长提供了一些有用的资源和建议,帮助您更加容易地赚钱。 二、网站广告 网站广告是一种常见的赚钱方式,下面列出几种常见的广告形式: 1. 横幅广告 横幅广告是在页面的顶部或底部显示的广告条,通…

    Java 2023年6月16日
    00
  • 全面汇总SpringBoot和SpringClould常用注解

    Spring Boot和Spring Cloud是Java开发中非常流行的框架,它们提供了许多注解来帮助开发人员更加高效地构建和部署应用程序。本文将全面汇总Spring Boot和Spring Cloud常用注解,并提供两个示例来演示如何使用这些注解。 Spring Boot常用注解 @SpringBootApplication @SpringBootApp…

    Java 2023年5月15日
    00
  • springboot实战权限管理功能图文步骤附含源码

    下面我就为您讲解一下“springboot实战权限管理功能图文步骤附含源码”的完整攻略。 一、搭建Spring Boot环境 首先,我们需要搭建好Spring Boot的运行环境,并创建一个新的Spring Boot项目。下面是新建一个Spring Boot项目的步骤: 打开IntelliJ IDEA软件,选择File -> New -> Pro…

    Java 2023年5月20日
    00
  • 深入了解Java内部类的用法

    来给大家介绍一下深入了解Java内部类的用法的攻略。 什么是Java内部类 Java内部类是定义在另一个类中的类,它可以访问外部类的所有成员和方法,而且可以与外部类进行私有访问和更好地封装性。Java的内部类分为四种:成员内部类、静态内部类、局部内部类和匿名内部类。 成员内部类 成员内部类即在类中定义的类,其特点是具有与外部类相同的访问权限,即public,…

    Java 2023年5月26日
    00
  • YII2.0框架行为(Behavior)深入详解

    下面针对”YII2.0框架行为(Behavior)深入详解”进行详细讲解,并且提供两个示例说明。 什么是行为(Behavior) 行为是 Yii 2 中一个非常重要的概念,它常常被用来实现代码复用及属性的自定义处理。通俗点来说,行为可以看作是一种类的特殊封装。在 Yii 2 中,每个行为可以封装一个函数或者一组函数。 行为的分类 可以把行为分为两种:普通行为…

    Java 2023年6月15日
    00
  • ajax跨页面提交表单

    在介绍Ajax跨页面提交表单之前,先简单介绍一下Ajax。Ajax全称为Asynchronous JavaScript and XML,即异步JavaScript和XML。Ajax技术允许在不刷新页面的情况下与服务器进行数据交互,从而增强用户的交互体验。 在Web开发中,Ajax常用于以下几个方面: 实时搜索 动态加载数据 表单验证 登录验证 异步上传文件 …

    Java 2023年6月2日
    00
  • 简单了解java类的初始化以及类的实例化

    简单了解Java类的初始化以及类的实例化 Java类的初始化 在Java中,类的初始化是指在类的第一次被使用时,JVM对其进行的一系列步骤。当JVM加载一个类时,它首先会进行初始化,这个过程包括以下几部分: 分配静态变量存储空间并初始化静态变量,如果静态变量有初始值,那么直接使用该值进行初始化;否则使用默认值进行初始化,例如整型会被初始化为0,布尔型会被初始…

    Java 2023年5月26日
    00
  • 如何实现Java监听器详解

    下面我将详细讲解“如何实现Java监听器详解”的完整攻略。 什么是Java监听器? 监听器是一种常用的设计模式,可以帮助我们在事件发生时进行相应的处理。在Java中,监听器就是一种回调函数,它可以在特定事件发生时被调用,用于执行相应的代码逻辑。 常用的Java监听器包括:ActionListener、MouseListener、KeyListener和Foc…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部