JDBC连接步骤

2023-11-20

第一步:在项目中新建一个名称叫lib的文件夹,然后将下载的MySQL连接jar包存入到这个lib文件夹中并配置环境
    第二步:编写代码,连接数据库并操作数据库中某个表里的数据
①:基本操作

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

        //2.获得连接
        String url = "jdbc:mysql:///java";
        String username = "root";
        String password = "root";

        Connection connection = DriverManager.getConnection(url, username, password);

        //3.获取发送SQL语句对象
        Statement statement = connection.createStatement();

        //4.编写SQL语句
        String sql = "insert into student1 value(2,'lisi')";

        statement.executeUpdate(sql);

        //5.释放资源
        statement.close();
        connection.close();

②:防止SQL注入

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String userName = sc.nextLine();
        System.out.println("请输入密码:");
        String pwd = sc.nextLine();

        // 1、注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        // 2、获得连接
        String url = "jdbc:mysql://localhost:3306/java";
        String user = "root";
        String password = "123456";
        Connection connection = DriverManager
                .getConnection(url, user, password);

        // 3、获取发送SQL对象
        String sql = "select * from db_user where userName = ? and password=?;";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
//		System.out.println(preparedStatement);

        // 4、绑定参数,有多少个?绑定多少个参数值
        preparedStatement.setString(1, userName);
        preparedStatement.setString(2, pwd);
//		System.out.println(preparedStatement);

        // 5、执行SQL语句,并处理结果
        ResultSet resultSet = preparedStatement.executeQuery();
        if (resultSet.next()) {
            System.out.println("用户名和密码正确,登录成功");
        } else {
            System.out.println("用户名或密码错误,登录失败");
        }

        // 6、释放资源:与关闭流的方式一样,先开的后关,后开的先关
        resultSet.close();
        preparedStatement.close();
        connection.close();
        sc.close();

    }

③:编写一个DB工具类

import java.sql.*;

public class DBUtils {
    static {
        // 类加载,执行一次!
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //1.获取连接
    public static Connection getConnection(){
        Connection connection = null;
        try {
            connection = DriverManager.getConnection("jdbc:mysql:///java", "root", "root");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    // 2.释放资源
    public static void closeAll(Connection connection, Statement statement,
                                ResultSet resultSet) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


}

需求:

public static void main(String[] args) throws ClassNotFoundException, SQLException {

        /*
         * 需求:在控制台输入用户名和密码,根据输入的用户名和密码在数据库中查询,如果用户名和密码在数据库中,提示登录成功,反之提示登录失败
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String userName = sc.nextLine();
        System.out.println("请输入密码:");
        String pwd = sc.nextLine();
        //1.注册驱动
        //Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DBUtils.getConnection();
        String sql = "SELECT * FROM db_user where user=? and pwd = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,userName);
        preparedStatement.setString(2,pwd);
        ResultSet resultSet = preparedStatement.executeQuery();
        if (resultSet.next()){
            System.out.println("用户名和密码正确,登录成功");

        }else{
            System.out.println("用户名或密码错误,登录失败");

        }
        // 6、释放资源:与关闭流的方式一样,先开的后关,后开的先关
        DBUtils.closeAll(connection, preparedStatement, resultSet);
        sc.close();
    }

 ④:编写配置文件db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java
username=root
password=123456

db工具类

public class DBUtils {
    private static final Properties PROPERTIES = new Properties();//PROPERTIES是存储配置文件的集合

    static {
        InputStream is = DBUtils.class.getResourceAsStream("/db.properties");

        try {
            PROPERTIES.load(is);
           Class.forName(PROPERTIES.getProperty("driver"));
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(PROPERTIES.getProperty("url"), PROPERTIES.getProperty("username"), PROPERTIES.getProperty("password"));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


}

需求:

public static void main(String[] args) throws ClassNotFoundException, SQLException {

        /*
         * 需求:在控制台输入用户名和密码,根据输入的用户名和密码在数据库中查询,如果用户名和密码在数据库中,提示登录成功,反之提示登录失败
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String userName = sc.nextLine();
        System.out.println("请输入密码:");
        String pwd = sc.nextLine();
        //1.注册驱动
        //Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DBUtils.getConnection();
        String sql = "SELECT * FROM db_user where user=? and pwd = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,userName);
        preparedStatement.setString(2,pwd);
        ResultSet resultSet = preparedStatement.executeQuery();
        if (resultSet.next()){
            System.out.println("用户名和密码正确,登录成功");

        }else{
            System.out.println("用户名或密码错误,登录失败");

        }
        // 6、释放资源:与关闭流的方式一样,先开的后关,后开的先关
        DBUtils.closeAll(connection, preparedStatement, resultSet);
        sc.close();
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC连接步骤 的相关文章

随机推荐

  • SAP WM LT21界面里源发仓位以及目的地仓位的显示

    SAP WM LT21界面里源发仓位以及目的地仓位的显示 SAP WM模块中事务代码LT21用于显示转储单 TO单 在这个界面里 在TO单号码下方的位置 看起来像是HEADER的位置 会显示source storage bin destin
  • PCB设计笔记

    系列文章目录 1 元件基础 2 电路设计 3 PCB设计 4 元件焊接 5 板子调试 6 程序设计 7 算法学习 8 编写exe 9 检测标准 10 项目举例 11 职业规划 文章目录 前言 一 PCB板上的 地 1 详解电路设计中单点接地
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • 11-9 复制一个文件(方法三)

    1 利用 fread 和 fwrite 函数进行文件复制 方法一 利用读写一个字符的函数进行文件复制 速度较慢 但是适用于文本和二进制文件 方法二 利用读写一行字符的函数进行文件复制 速度较快 但仅适用于文本文件 使用 fread 和 fw
  • css3属性将单词换行并添加中划线(连字符)

    1 HTML页面 必须为英文语言 2 CSS页面 product desc width 520px max height 160px overflow hidden hyphens auto 效果 这样就把单词performance换行并添
  • [LINUX]虚拟机LinuxUbuntu上对.tarxz和.zip解压

    在虚拟机中的Linux Ubuntu系统上 你可以使用以下命令来解压 tar xz 和 zip 压缩包 1 解压 tar xz 压缩包 使用 tar 命令来解压 tar xz 压缩包 命令的格式是 tar xJf 压缩包文件名 tar xz
  • elasticsearch-head chrome 插件安装

    前言 由于不能直接访问谷歌商店下载插件 但可以直接在 Github 下载 地址 https github com mobz elasticsearch head raw master crx es head crx 如果觉得慢 可在此下载
  • SAS安装错误

    SAS安装 SAS安装分为两个阶段 系统要求 安装 第1阶段 Stage1 系统要求 System Requirement 需确保安装Microsoft Office Access Database Engine Microsoft Run
  • 定位shadow

    1 先定位到 shadow root 的宿主节点 此处为 id box 的 div 2 切换到 shadow root 中 3 然后再选择 shadow root 下的 span 标签 import time from selenium i
  • 2022亚太数学杯数学建模竞赛C题(思路、程序......)

    目录 一 英文题目及数据 二 中文翻译题目参考 2 1 题目 2 2 题目 三 思路 程序参考 四 参考文献 一 英文题目及数据 Canada s 49 6 C has set a new temperature record for re
  • 前端高频面试题 js中堆和栈的区别和浏览器的垃圾回收机制

    一 栈 stack 和 堆 heap 栈 stack 是栈内存的简称 栈是自动分配相对固定大小的内存空间 并由系统自动释放 栈数据结构遵循FILO first in last out 先进后出的原则 较为经典的就是乒乓球盒结构 先放进去的乒
  • 将数据导入Hive数据库中,使用python链接Hive读取数据库,转化成pandas的dataframe

    做互联网应用开发过程中 时常需要面对海量的数据存储及计算 传统的服务器已经很难再满足一些运算需求 基于hadoop spark的大数据处理平台得到广泛的应用 本文提供一个导入数据到hive 用python读取hive数据库的例子 这实际是个
  • blender学习记录3--物体的操作

    添加删除物体 删除选中物体按delete或者x 进行选择删除 操作面板 在上一个步骤 比如添加物体 后 在屏幕两侧下方都会出现添加xx 点开这个操作面板就能够将刚添加的物体属性进行选择 若是做了其他步骤还想在修改只能在侧栏的条目或者编辑器类
  • 使用大块内存的设置

    C 如下分配内存的代码 booleantempTag true do try double K NULL int nnz cout lt lt 请输入分配内存大小 MB lt
  • logstash过滤器插件filter详解及实例

    原创作者 峰哥ge 原创地址 https www cnblogs com FengGeBlog p 10305318 html logstash过滤器插件filter grok正则捕获 grok是一个十分强大的logstash filter
  • Docker:数据卷&数据卷容器

    一 概念解析 1 数据卷 数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹 通过docker run v命令可以将数据卷挂载到对应的容器目录空间 进行文件读取 容器卷特性如下 数据卷可以在容器之间共享和重用 容器间传递数
  • MOOC《Python语言程序设计》第6周练习题

    这周讲解了组合数据类型 重点介绍表达和处理一组数据的方法 涉及到多种数据类型 包括 集合类型 序列类型 含元组类型和列表类型 和字典类型 讲解2个颇有用处的实例 基本统计值计算和文本词频统计 其中 即有英文Hamlet的词频统计 也有中文
  • mysql设置utf-8和查询修改数据库、表常用命令

    mysql设置utf 8和查询修改数据库 表常用命令 1 设置utf8字符集 2 查询修改数据库 表的字符集 1 设置utf8字符集 二级目录 默认情况下 通过 show variables like char 命令查询mysql字符编码如
  • 'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件

    今天通过windows cmd客户端输入 solr cmd start 启动solr时 提示 findstr 不是内部或外部命令 也不是可运行的程序或批处理文件 这是PATH环境变量的问题 将windows命令的目录添加到PATH中就好了
  • JDBC连接步骤

    第一步 在项目中新建一个名称叫lib的文件夹 然后将下载的MySQL连接jar包存入到这个lib文件夹中并配置环境 第二步 编写代码 连接数据库并操作数据库中某个表里的数据 基本操作 1 注册驱动 Class forName com mys