JDBC连接MySQL并实现模糊查询

下面是实现JDBC连接MySQL并实现模糊查询的完整攻略以及两条示例。

步骤一:导入MySQL JDBC驱动包

在使用Java连接MySQL之前,我们需要先将MySQL JDBC驱动包导入到项目中。

推荐使用官方提供的驱动包,下载地址:https://dev.mysql.com/downloads/connector/j/

下载完成后,将驱动包添加到项目的classpath路径下即可。

步骤二:创建连接

通过以下代码创建一个MySQL连接:

Connection conn = null;
try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
    e.printStackTrace();
}

其中,jdbc:mysql://localhost:3306/mydatabase为数据库连接字符串,其中localhost为数据库所在的服务器地址,3306为MySQL服务端口号,mydatabase为数据库名称。rootpassword分别为连接数据库需要使用的用户名和密码。

步骤三:创建Statement对象

创建用于执行SQL语句的Statement对象,代码如下:

Statement stmt = null;
try {
    stmt = conn.createStatement();
} catch (SQLException e) {
    e.printStackTrace();
}

步骤四:执行SQL语句

在创建Statement对象之后,我们可以使用该对象执行SQL语句。

以模糊查询为例,假设我们要查询所有名称中包含“Tom”的记录,可以使用如下代码:

String sql = "SELECT * FROM mytable WHERE name LIKE '%Tom%'";
ResultSet rs = null;
try {
    rs = stmt.executeQuery(sql);
} catch (SQLException e) {
    e.printStackTrace();
}

其中,mytable为待查询的表名,name为要查询的字段名,'%Tom%'为要查询的关键字,%表示可以匹配任意多个字符。

步骤五:获取查询结果

执行完SQL语句之后,我们可以使用ResultSet对象获取查询结果。

以输出查询结果为例,可以使用如下代码:

try {
    while (rs.next()) {
        String name = rs.getString("name");
        int age = rs.getInt("age");
        System.out.println("name: " + name + ", age: " + age);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

其中,nameage为查询结果中的字段名。

示例一:查询用户列表

假设我们要查询所有用户名包含“Tom”的用户列表,可以使用以下代码:

Connection conn = null;
try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
    e.printStackTrace();
}

Statement stmt = null;
try {
    stmt = conn.createStatement();
} catch (SQLException e) {
    e.printStackTrace();
}

String sql = "SELECT * FROM user WHERE name LIKE '%Tom%'";
ResultSet rs = null;
try {
    rs = stmt.executeQuery(sql);
} catch (SQLException e) {
    e.printStackTrace();
}

try {
    while (rs.next()) {
        String name = rs.getString("name");
        int age = rs.getInt("age");
        System.out.println("name: " + name + ", age: " + age);
    }
} catch (SQLException e) {
    e.printStackTrace();
}

try {
    rs.close();
    stmt.close();
    conn.close();
} catch (SQLException e) {
    e.printStackTrace();
}

其中,user为查找用户的表名。

示例二:更新记录

假设我们要将所有名称中包含“Tom”的记录的年龄修改为30岁,可以使用以下代码:

Connection conn = null;
try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
} catch (SQLException | ClassNotFoundException e) {
    e.printStackTrace();
}

Statement stmt = null;
try {
    stmt = conn.createStatement();
} catch (SQLException e) {
    e.printStackTrace();
}

String sql = "UPDATE mytable SET age = 30 WHERE name LIKE '%Tom%'";
try {
    stmt.executeUpdate(sql);
} catch (SQLException e) {
    e.printStackTrace();
}

try {
    stmt.close();
    conn.close();
} catch (SQLException e) {
    e.printStackTrace();
}

其中,mytable为要更新的表名。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC连接MySQL并实现模糊查询 - Python技术站

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

相关文章

  • PTA题目集4~6总结

    一前言   题目集四主要考察的是对LocalDate,ArrayList,HashSet等Java自带类的使用   题目集五主要考察的是对正则表达式的使用,以及对其题目集三的时间题目的进行类结构的改变   题目集六只有一道题,主要是对题目集四的第一题进行加大难度   总的来说这几次的题目量比前面几次都要少,但是题目难度开始加深。 二设计与分析    由于部分…

    Java 2023年4月30日
    00
  • 手撸一个Spring Boot Starter并上传到Maven中央仓库

    下面就是手撸一个Spring Boot Starter并上传到Maven中央仓库的完整攻略: 什么是Spring Boot Starter Spring Boot Starter是一个针对特定的场景,预先配置好Spring Boot和第三方库的样板代码模板。这个模板通常包含了对于Spring Boot应用程序的配置、依赖管理、初始化等操作,并通过自动配置的方…

    Java 2023年6月2日
    00
  • SpringBoot集成JPA持久层框架,简化数据库操作

    以下是详细讲解“SpringBoot集成JPA持久层框架,简化数据库操作”的完整攻略。 1. 引入JPA依赖 在SpringBoot中引入JPA依赖非常简单,只需要在Maven或Gradle的配置文件中添加以下依赖就可以了。 Maven依赖配置 <dependency> <groupId>org.springframework.boo…

    Java 2023年5月20日
    00
  • Mybatis 自动映射(使用需谨慎)

    Mybatis 自动映射 (Auto-mapping) 是指Mybatis在进行 SQL 查询结果和Java对象映射时,自动查找Java对象对应属性名和SQL查询结果列名相同的项,并进行赋值。自动映射虽然能够简化开发工作,但也存在一些需要注意的地方,使用时需谨慎。 自动映射的配置方式 方式一: 自动映射全局开启 Mybatis提供了全局配置自动映射的方式,即…

    Java 2023年5月19日
    00
  • Java 集合框架掌握 Map 和 Set 的使用(内含哈希表源码解读及面试常考题)

    Java 集合框架掌握 Map 和 Set 的使用(内含哈希表源码解读及面试常考题) 介绍 Java 集合框架是 Java 语言提供的一个用于管理数据的框架,包含了一系列的接口和实现类,方便对不同类型的数据进行操作。其中,Map 和 Set 是集合框架中比较重要的部分。 本文将介绍 Map 和 Set 的使用方法,同时解读哈希表的源码,以及总结常见的面试考点…

    Java 2023年5月26日
    00
  • 详解Java读取Jar中资源文件及示例代码

    下面是详细讲解「详解Java读取Jar中资源文件及示例代码」的完整攻略。 1. 了解Java读取Jar中资源文件的原理 在Java中,读取Jar中资源文件的流程通常如下: 通过ClassLoader加载Jar包。 通过ClassLoader获取资源文件的URL。 通过URL打开资源文件的流。 读取资源文件的流中的内容。 2. 如何读取Jar中的资源文件? 当…

    Java 2023年5月20日
    00
  • 修改Tomcat默认访问根目录的方法

    当我们访问Tomcat服务器时,它默认会加载webapps目录下的ROOT应用程序。但是,有时我们想在不改变应用程序名称的情况下将默认访问目录更改为不同的目录。接下来,我将向您介绍如何在Tomcat服务器中修改默认访问目录的方法。 步骤一:定位server.xml文件 Tomcat服务器的配置文件位于Tomcat安装目录下的conf目录中。在此目录中,我们可…

    Java 2023年5月19日
    00
  • JavaWeb利用邮箱帮用户找回密码

    下面我就详细讲解一下JavaWeb利用邮箱帮用户找回密码的完整攻略。 一、方案说明 JavaWeb中实现密码找回的方式有很多种,其中比较常见的一种方式就是利用邮箱来帮助用户找回密码。具体实现方式如下: 用户选择找回密码功能,并输入用户名/邮箱等信息; 服务器验证用户信息,并生成一个随机的字符串作为验证码; 服务器将该随机字符串拼接到找回密码链接中,并发送到用…

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