java操作mysql入门代码实例(含插入、更新和查询)

首先简述一下本文所讲解的内容。本文将会讲述Java操作MySQL中的增删改查基础操作,主要通过JDBC连接MySQL数据库,并通过代码实现简单的增删改查。

文章结构如下:

  1. 准备工作
  2. 连接数据库
  3. 插入数据
  4. 修改数据
  5. 查询数据
  6. 关闭连接

1. 准备工作

在开始编写Java操作MySQL入门代码实例前,需要以下准备工作:

  1. 安装MySQL数据库并创建一个新的数据库;
  2. 安装JDBC驱动程序;
  3. 创建Java Maven工程,并添加JDBC驱动程序依赖项。

本文的示例中将会使用MySQL数据库,JDBC驱动使用mysql-connector-java,Java IDE使用Eclipse。

2. 连接数据库

先介绍连接MySQL数据库的步骤。以下是连接MySQL数据库的一些详细步骤:

Connection conn = null;
Statement stmt = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
} 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();
    }
}

需要注意的是,如果在 Java 6 或以上版本中,使用时不需要在代码中 Class.forName(),如下:

Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);

上方的方式仅适用于 Java 6 或以上的版本。

代码讲解:

  1. 加载驱动程序Class.forName("com.mysql.jdbc.Driver"),该命令告诉编译器我们将要使用MySQL的驱动程序,先前需要将驱动程序文件复制到classpath下(比如src目录下);
  2. 获得连接DriverManager.getConnection(url, username, password);
  3. 创建 Statement 对象stmt = conn.createStatement(),该对象用于我们后面的增删改查操作。

3. 插入数据

接下来介绍如何插入数据。以下是插入数据的一些详细步骤:

Connection conn = null;
Statement stmt = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 插入数据
    String sql = "INSERT INTO Student(ID, Name, Age) VALUES (1, 'Tom', 18)";
    stmt.executeUpdate(sql);
} 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();
    }
}

代码讲解:

  1. 创建SQL语句字符串。在本例中,我们将向 Student 表中插入一条名为“Tom”的学生记录;
  2. 执行SQL语句stmt.executeUpdate()。

下面是一个插入多条数据的示例:

Connection conn = null;
Statement stmt = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 插入数据
    String sql = "INSERT INTO Student(ID, Name, Age) VALUES (2, 'Jerry', 19), (3, 'Lucy', 20), (4, 'Tony', 22)";
    stmt.executeUpdate(sql);
} 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();
    }
}

4. 修改数据

介绍如何修改数据。以下是修改数据的一些详细步骤:

Connection conn = null;
Statement stmt = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 修改数据
    String sql = "UPDATE Student SET Name = 'Mary' WHERE ID = 1";
    stmt.executeUpdate(sql); 
} 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();
    }
}

代码讲解:

  1. 创建 SQL 语句字符串。在本例中,我们将把 ID 等于 1 的学生的名字从“Tom”更改为“Mary”;
  2. 执行 SQL 语句stmt.executeUpdate()。

下面是一个修改多条数据的示例:

Connection conn = null;
Statement stmt = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 修改数据
    String sql = "UPDATE Student SET Name = 'Lucy' WHERE ID IN (2, 3)";
    stmt.executeUpdate(sql); 
} 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();
    }
}

5. 查询数据

介绍如何查询数据。以下是查询数据的一些详细步骤:

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 查询数据
    String sql = "SELECT * FROM Student";
    rs = stmt.executeQuery(sql);
    // 处理结果集
    while(rs.next()){
        // 通过字段检索
        int id  = rs.getInt("ID");
        String name = rs.getString("Name");
        int age = rs.getInt("Age");
        // 输出数据
        System.out.print("ID: " + id);
        System.out.print(", 姓名: " + name);
        System.out.print(", 年龄: " + age);
        System.out.print("\n");
    }
} catch (SQLException se) {
    // 处理 JDBC 错误
    se.printStackTrace();
} catch (Exception e) {
    // 处理 Class.forName 错误
    e.printStackTrace();
} finally {
    // 关闭资源
    try {
        if (rs != null) {
            rs.close();
        }
    } catch (SQLException se1) {}
    try {
        if (stmt != null) {
            stmt.close();
        }
    } catch (SQLException se2) {}
    try {
        if (conn != null) {
            conn.close();
        }
    } catch (SQLException se) {
        se.printStackTrace();
    }
}

代码讲解:

  1. 创建 SQL 语句字符串。在本例中,我们将查询 Student 表中的所有记录。SELECT * FROM Student;
  2. 执行查询操作stmt.executeQuery();
  3. 处理结果集ResultSet。while(rs.next())为遍历数据结果集,通过 getInt()、getString() 等方法获取指定列的数据。

下面是一个根据条件查询数据的示例:

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    // 获取数据库连接
    conn = DriverManager.getConnection(DB_URL, USER, PASS);
    // 创建 Statement 对象
    stmt = conn.createStatement();
    // 查询数据
    String sql = "SELECT * FROM Student WHERE Name = 'Mary'";
    rs = stmt.executeQuery(sql);
    // 处理结果集
    while(rs.next()){
        // 通过字段检索
        int id  = rs.getInt("ID");
        String name = rs.getString("Name");
        int age = rs.getInt("Age");
        // 输出数据
        System.out.print("ID: " + id);
        System.out.print(", 姓名: " + name);
        System.out.print(", 年龄: " + age);
        System.out.print("\n");
    }
} catch (SQLException se) {
    // 处理 JDBC 错误
    se.printStackTrace();
} catch (Exception e) {
    // 处理 Class.forName 错误
    e.printStackTrace();
} finally {
    // 关闭资源
    try {
        if (rs != null) {
            rs.close();
        }
    } catch (SQLException se1) {}
    try {
        if (stmt != null) {
            stmt.close();
        }
    } catch (SQLException se2) {}
    try {
        if (conn != null) {
            conn.close();
        }
    } catch (SQLException se) {
        se.printStackTrace();
    }
}

6. 关闭连接

最后一个步骤是关闭连接。无论成功还是失败,在处理完数据库操作后,我们都应该关闭连接。以下是关闭连接的一些详细步骤:

try {
    if (rs != null) {
        rs.close();
    }
} catch (SQLException se1) {}
try {
    if (stmt != null) {
        stmt.close();
    }
} catch (SQLException se2) {}
try {
    if (conn != null) {
        conn.close();
    }
} catch (SQLException se) {
    se.printStackTrace();
}

需要注意的是,连接和语句对象必须在 ResultSet 对象关闭之前关闭。

至此,Java操作MySQL入门代码实例(含插入、更新和查询)的完整攻略就完整讲解完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java操作mysql入门代码实例(含插入、更新和查询) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java代码里如何拼接SQL语句到mybatis的xml

    拼接 SQL 语句的方式有很多种,不过使用 MyBatis 操作数据库时,使用动态 SQL 可以通过 Java 代码来进行 SQL 语句的拼接,以下是完整的攻略。 1. 简介 MyBatis 是一款优秀的数据访问层框架,它支持 JDBC 标准的所有特性。MyBatis 在 SQL 映射文件中提供了丰富的标签,用于完成数据库操作。其中,动态 SQL 可以根据 …

    Java 2023年5月20日
    00
  • Servlet关于RequestDispatcher的原理详解

    《Servlet关于RequestDispatcher的原理详解》 什么是RequestDispatcher? RequestDispatcher是Servlet规范中的一种技术,用于在一个Web应用程序内部将请求转发到另一个Servlet或JSP页面,是一种实现Servlet之间跳转和调用的方法。 RequestDispatcher的工作原理 Reques…

    Java 2023年6月15日
    00
  • Java中对List集合的常用操作详解

    Java中对List集合的常用操作详解 List是Java语言中常用的集合类型之一,它可以存储一组有序的元素,且可以通过索引访问这些元素。在Java中,List是一个接口,常用的实现类包括ArrayList、LinkedList等,本文将详细介绍Java中对List集合的常用操作。 1. 创建List对象 在Java中创建List对象需要使用List接口的实…

    Java 2023年5月26日
    00
  • Java调用Python脚本传递数据并返回计算结果

    Java调用Python脚本并传递数据可以通过Java的ProcessBuilder类,在Java程序中启动Python脚本进程。同时,可以通过标准输入和标准输出进行数据传递。具体步骤如下: 1.编写Python脚本 首先,需要编写Python脚本来处理接收到的数据,并返回计算结果。例如: import sys data = sys.stdin.read()…

    Java 2023年5月26日
    00
  • 一文带你认识Java中的Object类和深浅拷贝

    一文带你认识Java中的Object类和深浅拷贝 1. Object类 在Java中,所有的类都是从java.lang.Object类继承而来的。因此,java.lang.Object是Java中的祖先类,拥有以下常用的方法: equals(Object obj): 判断当前对象是否与参数obj相等,可以重写该方法来实现对象的比较 hashCode(): 返…

    Java 2023年5月19日
    00
  • 浅谈Java ThreadPoolExecutor的使用

    浅谈Java ThreadPoolExecutor的使用 什么是ThreadPoolExecutor ThreadPoolExecutor是Java中的线程池的实现类之一,通过它可以实现线程池的管理和任务分配的功能,是多线程程序开发中常用的工具。 ThreadPoolExecutor的构造方法 ThreadPoolExecutor有多个构造方法,常用的有以下…

    Java 2023年5月26日
    00
  • JSP教程(三)–JSP中”预定义变量”的使用

    接下来我将为你讲解“JSP教程(三)–JSP中预定义变量”的使用的完整攻略。 什么是JSP中的预定义变量? 在JSP页面中,有一些变量不需要我们定义就可以直接使用,这些变量就被称作“预定义变量”,也叫“内置对象”。在JSP中,有9个预定义变量,分别是: request:HttpServletRequest类型,代表客户端发出的请求。 response:Ht…

    Java 2023年6月15日
    00
  • java 线程之对象的同步和异步(实例讲解)

    Java线程之对象的同步和异步 在Java中,多个线程可以同时访问对象。但是,如果多个线程同时访问同一个对象的资源时,就会出现同步问题,导致程序运行出现错误。 对象的同步 Java提供了synchronized关键字来实现对对象的同步。使用synchronized关键字修饰的代码块可以保证同一时间只有一个线程可以访问该对象的资源。 下面是一个示例,其中两个线…

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