Java使用jdbc连接MySQL数据库实例分析

yizhihongxing

Java使用JDBC连接MySQL数据库实例分析

JDBC(Java Database Connectivity)是Java数据库开发的基石,通过JDBC,Java开发者可以通过简单易用的API连接各种关系型数据库,MySQL当然是其中之一。本文将介绍如何使用JDBC连接MySQL数据库。

步骤一:下载并安装MySQL数据库

在官网上下载MySQL Community Server并进行安装。

步骤二:添加MySQL JDBC驱动

将下载的MySQL JDBC驱动包(mysql-connector-java-{version}-bin.jar)放入到Java项目的classpath中。

步骤三:编写Java代码

下面是一个使用JDBC连接MySQL数据库的示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcDemo {

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            //注册JDBC驱动
            Class.forName("com.mysql.jdbc.Driver");

            //打开连接
            String url = "jdbc:mysql://127.0.0.1:3306/testdb";
            String user = "root";
            String password = "root";
            conn = DriverManager.getConnection(url, user, password);

            //执行查询
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT * FROM users");

            //处理结果集
            while (rs.next()) {
                System.out.println(rs.getInt("id") + "\t"
                        + rs.getString("name") + "\t"
                        + rs.getString("email"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

第1步: 通过调用Class.forName()方法加载JDBC驱动。

第2步: 打开和数据库的连接。

第3步: 执行SQL查询,获取结果集。

第4步: 处理结果集。

第5步: 关闭连接、Statement和ResultSet等资源。

示例一:创建一个MySQL数据库实例

在MySQL shell中创建一个名为testdb的数据库。

mysql> CREATE DATABASE testdb;

在testdb中创建一个名为users的表。

mysql> USE testdb;
mysql> CREATE TABLE users (
       id INT(11) NOT NULL AUTO_INCREMENT,
       name VARCHAR(50) NOT NULL,
       email VARCHAR(50) NOT NULL,
       PRIMARY KEY (id)
     );

往users表中插入一些数据。

mysql> INSERT INTO users VALUES (1, '张三', 'zhangsan@qq.com');
mysql> INSERT INTO users VALUES (2, '李四', 'lisi@qq.com');

运行Java程序(示例代码中的JdbcDemo类),执行SQL查询,获取结果集。

$ java JdbcDemo
1   张三  zhangsan@qq.com
2   李四  lisi@qq.com

示例二:使用PreparedStatement防止SQL注入

“SQL注入”是一种常见的攻击方式,通过在用户输入的数据中注入SQL语句来实现对数据库的非法访问。为了避免这种攻击,我们可以使用PreparedStatement代替Statement。

下面是一个使用PreparedStatement防止SQL注入的示例代码。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JdbcDemo {

    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            //注册JDBC驱动
            Class.forName("com.mysql.jdbc.Driver");

            //打开连接
            String url = "jdbc:mysql://127.0.0.1:3306/testdb";
            String user = "root";
            String password = "root";
            conn = DriverManager.getConnection(url, user, password);

            //使用PreparedStatement执行参数化查询
            String sql = "SELECT * FROM users WHERE name=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            rs = pstmt.executeQuery();

            //处理结果集
            while (rs.next()) {
                System.out.println(rs.getInt("id") + "\t"
                        + rs.getString("name") + "\t"
                        + rs.getString("email"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

使用PreparedStatement时,我们可以通过占位符(?)来动态设置查询条件的值。在执行查询之前,使用setString()方法设置占位符的值。这样就可以防止用户输入的数据注入到SQL语句中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java使用jdbc连接MySQL数据库实例分析 - Python技术站

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

相关文章

  • JAVA 运算符归纳总结

    JAVA 运算符归纳总结 一、算术运算符 运算符 说明 示例 + 加法/字符串连接 1 + 1 = 2,”a” + “b” – 减法 2 – 1 = 1 * 乘法 3 * 2 = 6 / 除法 5 / 2 = 2 % 取模(余数) 5 % 2 = 1 ++ 自增 i++,++i — 自减 i–,–i 示例说明: // 加法/字符串连接 int a = …

    Java 2023年5月26日
    00
  • spring+mybatis实现图书管理系统

    以下是“spring+mybatis实现图书管理系统”的完整攻略。 1. 环境准备 首先需要准备好开发环境,包括以下工具和框架: JDK(Java Development Kit): 用于编译和运行Java程序的开发工具包。 Eclipse(或其他Java开发工具):用于编写和调试Java代码的集成开发环境(IDE)。 Maven:Java项目的构建工具,用…

    Java 2023年6月15日
    00
  • Java Lambda表达式详解

    Java Lambda表达式详解 什么是Lambda表达式? Lambda表达式是Java SE 8中引入的一项新特性,它是一个匿名函数,可以把Lambda表达式看作是简洁、可读性高的定义单方法接口(Functional Interface)的方式。Lambda表达式的定义方式与方法类似,但它没有名称、返回类型和修饰符。 Lambda表达式的语法如下: (p…

    Java 2023年6月3日
    00
  • 微信小程序—微信跳一跳,Android游戏助手(外挂)使用教程详解

    微信小程序-微信跳一跳攻略 微信跳一跳是一款非常受欢迎的休闲游戏,玩家通过点击屏幕,让小人获得满分。为了获得更高的分数,很多玩家会使用外挂,本文将会介绍如何使用一个Android游戏助手进行微信跳一跳外挂。 步骤一:安装Android游戏助手 在Android手机上安装一个游戏助手是使用微信跳一跳外挂的前提条件。比较流行的游戏助手有:Game Guardia…

    Java 2023年5月23日
    00
  • JDBC大批量写入数据到SQLServer2000,记录数大于10000

    JDBC是Java DataBase Connectivity的简称,提供了一种连接Java应用程序和不同关系型数据库的标准方式,SQLServer2000是Microsoft SQL Server 2000的简称,是一种关系型数据库类型。在使用JDBC连接SQLServer2000时,如果需要大量写入数据,需要注意以下几点: 设置批处理大小 在JDBC中,…

    Java 2023年6月16日
    00
  • 将html页改成jsp的两种方式

    将HTML页面改为JSP页面的主要目的是为了让页面能够动态生成,便于后台数据的传递和展示。下面介绍两种方式来将HTML页面转换为JSP页面。 1. 直接将HTML文件后缀改为JSP 这是最简单的一种方式,只需将原来的HTML文件后缀改为JSP即可。 示例1: 原始的HTML页面代码如下: <!DOCTYPE html> <html> …

    Java 2023年6月1日
    00
  • Java多态和实现接口的类的对象赋值给接口引用的方法(推荐)

    Java中的多态和接口是两个重要的概念,对于Java开发者来说必须要掌握其使用方法和相关规则。本次攻略将详细讲解Java多态和实现接口的类的对象赋值给接口引用的方法。 一、Java多态 Java多态是指同一个方法在不同的对象上会有不同的行为。它是面向对象编程中一种重要的概念,提高了程序的可扩展性和可维护性。 1.1 多态的实现方式 Java多态一般有两种实现…

    Java 2023年5月26日
    00
  • java进行文件读写操作详解

    Java进行文件读写操作详解 概述 Java支持文件的读写操作,通过读写文件能够实现各种常见的功能,比如读取配置文件、写入日志等。文件读写的过程中我们需要使用到Java中的IO类库,主要包括InputStream、OutputStream、Reader和Writer等。其中InputStream和OutputStream主要用于读写字节数据,Reader和W…

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