java实现的连接数据库及模糊查询功能示例

yizhihongxing

以下是详细的攻略:

连接数据库

Java连接数据库需要使用JDBC(Java Database Connectivity)技术,具体过程如下:

  1. 导入JDBC驱动程序。如果使用MySQL数据库,则需要下载相应的驱动。可以在MySQL官网 下载最新版本的JDBC驱动。
  2. 加载驱动程序。可以使用Class.forName()方法来加载驱动程序。
  3. 建立数据库连接。使用DriverManager.getConnection()方法来建立和数据库的连接。

示例代码如下:

import java.sql.*;

public class ConnectDatabase {

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/test";

    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, age, address FROM students";
            ResultSet rs = stmt.executeQuery(sql);

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

                // 输出结果
                System.out.print("ID: " + id);
                System.out.print(", 姓名: " + name);
                System.out.print(", 年龄: " + age);
                System.out.println(", 地址: " + address);
            }
            // 关闭结果集、语句和连接
            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!");
    }
}

模糊查询

在SQL中进行模糊查询可以使用LIKE关键字,示例如下:

SELECT column_name FROM table_name WHERE column_name LIKE '%xxx%';

其中,xxx表示要模糊匹配的字符串。它可以出现在被匹配字符串的任何位置,并且也可以由多个字符串组成。

在Java中,可以将用户输入的字符串与数据库中的数据进行模糊匹配,示例代码如下:

import java.sql.*;

public class FuzzyQuery {

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/test";

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

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

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

            // 执行查询
            System.out.println("实例化PreparedStatement对象...");
            String sql;
            sql = "SELECT id, name, age, address FROM students WHERE address LIKE ?";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, "%北京%");

            ResultSet rs = stmt.executeQuery();

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

                // 输出结果
                System.out.print("ID: " + id);
                System.out.print(", 姓名: " + name);
                System.out.print(", 年龄: " + age);
                System.out.println(", 地址: " + address);
            }
            // 关闭结果集、语句和连接
            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!");
    }
}

本示例中,使用了PreparedStatement来进行模糊查询,并通过setString()方法设置了查询参数。注意,在设置查询参数时,要使用通配符%来表示匹配任意字符。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现的连接数据库及模糊查询功能示例 - Python技术站

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

相关文章

  • Go语言操作mysql数据库简单例子

    下面我会详细讲解如何用Go语言操作MySQL数据库,并且提供两个简单的示例。 1. 安装Go-MySQL-Driver Go-MySQL-Driver是一个Go语言的MySQL驱动程序,需要首先安装。可以通过以下命令行安装: go get -u github.com/go-sql-driver/mysql 2. 连接数据库 连接到数据库的步骤如下所示: im…

    Java 2023年6月16日
    00
  • java限流算法详细

    Java限流算法详细攻略 什么是限流算法 限流算法是一种流行的控制流量的技术,通常是在高并发的系统中使用,用于控制请求的流量以避免系统过载。在某些情况下,如果系统不稳定地处理过多的请求,系统可能会崩溃,因此限流算法的作用显得尤为重要。 常见的限流算法 以下是几种常见的限流算法: 1.计数器算法 计数器算法是一种特别基础的算法,思路就是所有的请求都进入一个计数…

    Java 2023年5月19日
    00
  • java中的异或问题代码解析

    本文将详细讲解Java中异或问题的相关知识,并提供两个示例方便理解。 异或运算符(^) 在Java中,异或运算符(^)表示将两个数据的每个二进位进行比较,如果相同则返回0,不同则返回1。例如: int a = 5 ^ 3; // a 的值为 6 上述代码将数值5和3进行异或运算,结果为6。 异或运算的特性 在异或运算中,有三个特性需要特别说明: 交换律 对于…

    Java 2023年5月23日
    00
  • Java File类提供的方法与操作

    首先我们来讲解Java的File类提供的方法与操作。File类是Java语言中常用的文件操作类,可以实现文件或目录的创建、删除、重命名等操作。下面是File类提供的一些常用方法: 1. 路径和文件名 1.1 getPath() 获取文件路径。 File file = new File("test.txt"); System.out.pri…

    Java 2023年5月20日
    00
  • jsp实现页面实时显示当前系统时间的方法

    要实现页面实时显示当前系统时间,可以使用以下方法: 方法一:使用JavaScript实现 最简单的方法是使用JavaScript,这种方式可以通过浏览器直接获取当前时间,然后展示在页面上。具体实现如下: 在HTML页面中引入JavaScript代码: <body onload="setInterval(displayClock, 1000);…

    Java 2023年6月15日
    00
  • jsp web.xml文件的作用及基本配置

    下面是详细讲解“jsp web.xml文件的作用及基本配置”的完整攻略。 一、web.xml文件的作用 web.xml是Java Web应用程序的核心配置文件之一,主要作用是为Java Web应用程序提供全局配置及部署信息。其内容以XML格式存储,主要包含了应用程序的基本信息、Servlet配置信息、Filter配置信息、Listener配置信息等。 web…

    Java 2023年6月15日
    00
  • Spring5+SpringMvc+Hibernate5整合的实现

    Spring5+SpringMVC+Hibernate5整合的实现 Spring5+SpringMVC+Hibernate5整合是一种常见的Java Web开发框架,它可以帮助我们快速开发Web应用程序。本文将详细讲解Spring5+SpringMVC+Hibernate5整合的实现,并提供两个示例说明。 实现步骤 步骤一:添加依赖 首先,我们需要在项目中添…

    Java 2023年5月17日
    00
  • PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法

    下面是关于PHP模拟登陆163邮箱并进行发邮件、获取通讯录列表的详细攻略。 步骤一:模拟登陆163邮箱 首先,我们需要进行模拟登陆163邮箱。为了实现这个目标,我们可以采用CURL库来构建HTTP请求,并通过DOMDocument和SimpleXMLElement处理HTML和XML文档。下面是模拟登陆的详细步骤: 1. 准备登陆数据 我们需要准备一个数组来…

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