首页 > 编程语言 >Java基础-初识JDBC

Java基础-初识JDBC

时间:2023-10-14 19:11:47浏览次数:35  
标签:JDBC java String jdbc import sql 初识 mysql Java

目录

1. JDBC简介
2. JDBC项目
3. JDBC的导入
4. JDBC的使用

内容

JDBC简介

  1. 什么是JDBC
    JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。

2.什么是mysql-connector-java
mysql-connector-java 是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。

JDBC项目

  1. 打开IDEA新建项目,填写项目名,选择项目路径

  2. 按照Java代码书写规范创建一个包并创建一个类

JDBC的导入

  1. 下载JDBC(MySQL版)

  2. 跳转至版本选择页面

  3. 选择版本下载

  4. 解压mysql-connector-java-8.0.25.zip,生成mysql-connector-java-8.0.25

  5. 在JDBC项目所在目录下创建lib文件夹

  6. 打开mysql-connector-java-8.0.25目录,复制mysql-connector-java-8.0.25.jar

  7. 把mysql-connector-java-8.0.25.jar粘贴到lib目录下

  8. 打开项目,点击File->Project Structure

  9. 点击Libraries -> + ->Java

  10. 选择lib目录下的mysql-connector-java-8.0.25.jar

  11. 点击ok

  12. 点击ok

  13. 查看mysql-connector-java-8.0.25.jar是否导入成功

JDBC的使用

  1. 必须提前安装MySQL并且MySQL可用
  2. 加载MySQL驱动程序
package com.example.aji;

public class Main {
    public static void main(String[] args) {
        try {
            //加载MySQL驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
        }catch (Exception e){
            e.printStackTrace();
        }
        //打印出Hello world!表名驱动程序加载成功
        System.out.println("Hello world!");
    }
}
  1. DriverManager类
    管理一组JDBC驱动程序的基本服务。一些常用方法:

    • getConnection​(String url, String user, String password)
      尝试建立与给定数据库URL的连接。
    package com.example.aji;
    
    import java.sql.DriverManager;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                DriverManager.getConnection(url,user,password);
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
  2. Connection类
    Connection与特定数据库的连接(会话)。 执行SQL语句并在连接的上下文中返回结果。Connection对象的数据库能够提供描述其表,其支持的SQL语法,其存储过程,此连接的功能等的信息。 一些常用方法:

    • close()
      立即释放此 Connection对象的数据库和JDBC资源,而不是等待它们自动释放。

    • createStatement()
      创建一个 Statement对象,用于将SQL语句发送到数据库。

    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
  3. Statement类
    用于执行静态SQL语句并返回其生成的结果的对象。一些常用方法:

    • close()
      立即释放此 Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。

    • executeUpdate​(String sql)
      执行给定的SQL语句,这可能是 INSERT , UPDATE ,或 DELETE语句,或者不返回任何内容,如SQL DDL语句的SQL语句。

    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                Statement statement = connection.createStatement();
                String updateSql="CREATE TABLE `t_person` (\n" +
                        "  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',\n" +
                        "  `name` varchar(30) NOT NULL COMMENT '姓名',\n" +
                        "  `birthdate` datetime NOT NULL COMMENT '出生日期',\n" +
                        "  PRIMARY KEY (`id`)\n" +
                        ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
                int result = statement.executeUpdate(updateSql);
                System.out.println(result);
                String insertSql="insert into t_person(name,birthdate) values('aji',now()),('aji',now())";
                result = statement.executeUpdate(insertSql);
                System.out.println(result);
                statement.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
    • executeQuery​(String sql)
      执行给定的SQL语句,该语句返回单个 ResultSet对象。
    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                Statement statement = connection.createStatement();
                String querySql="select * from t_person";
                ResultSet resultSet = statement.executeQuery(querySql);
                //打印查询结果
                while (resultSet.next()) {
                    System.out.print(resultSet.getInt("id"));
                    System.out.print(resultSet.getString("name"));
                    System.out.println(resultSet.getDate("birthdate"));
                }
                resultSet.close();
                statement.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
    • execute​(String sql)
      执行给定的SQL语句并返回boolean值
    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                Statement statement = connection.createStatement();
                String querySql="select * from t_person";
                ResultSet resultSet = statement.executeQuery(querySql);
                boolean execute = statement.execute(querySql);
                //打印查询结果
                System.out.println(execute);
                resultSet.close();
                statement.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
  4. ResultSet类
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。一些常用方法:

    • close()
      立即释放此 Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。

    • next()
      将光标从当前位置向前移动一行。

    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                Statement statement = connection.createStatement();
                String querySql="select * from t_person";
                ResultSet resultSet = statement.executeQuery(querySql);
                boolean execute = statement.execute(querySql);
                //打印查询结果
                System.out.println(execute);
                resultSet.close();
                statement.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    
    • getInt​(String columnLabel)
      以Java编程语言中 int此 ResultSet对象的当前行中指定列的值。
    package com.example.aji;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    import java.sql.ResultSet;
    
    public class Main {
        public static void main(String[] args) {
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                //mysql数据库相关信息
                String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
                String user="root";
                String password="123456789";
                Connection connection = DriverManager.getConnection(url,user,password);
                Statement statement = connection.createStatement();
                String querySql="select * from t_person";
                ResultSet resultSet = statement.executeQuery(querySql);
                boolean execute = statement.execute(querySql);
                //打印查询结果
                System.out.println(execute);
                resultSet.close();
                statement.close();
                connection.close();
            }catch (Exception e){
                e.printStackTrace();
            }
            System.out.println("Hello world!");
        }
    }
    

标签:JDBC,java,String,jdbc,import,sql,初识,mysql,Java
From: https://www.cnblogs.com/coderaji/p/17764557.html

相关文章

  • JDBC
    Java数据库连接,(JavaDatabaseConnectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是SunMicrosystems的商标。我们通常说的JDBC是面向关系型数据库的......
  • java基础——枚举类
     枚举枚举对应英文(enumeration,简写enum)。枚举是一组常量的集合。可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象。枚举的两种实现方式自定义类实现枚举使用enum关键字实现枚举自定义实现枚举不需要提供setXxx方法,因为枚举对象值通常为制度。对枚举对象/属性使用f......
  • Mac上使用jenv管理多个java版本
    Mac上可以使用Homebrew安装jenvbrewinstalljenv配置jenv的环境变量,向~/.profile(bash用户)或者~/.zshrc(zsh用户)文件中添加如下代码exportPATH="$HOME/.jenv/bin:$PATH"eval"$(jenvinit-)"使用如下命令添加java_home的路径到jenvjenvadd/Library/Java/JavaVirtual......
  • Java NIO 中的 Buffer、Channel 和 Selector:高效的非阻塞 IO
    在Java中,标准的IO操作使用阻塞模式,这意味着每个IO操作都会阻塞当前线程直到操作完成。而JavaNIO(NewIO)提供了一种基于事件驱动的非阻塞IO模型,通过三大组件——Buffer(缓冲区)、Channel(通道)和Selector(选择器),可以实现更高效的IO操作。本文将详细介绍和说明这三大组件的......
  • [JavaScript]arguments对象
    当我们不确定有多少个参数传递的时候,可以使用arguments来获取。在JavaScript中,arguments实际上是充当函数的内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。arguments展示形式是一个伪数组,可以进行遍历。伪数组具有以下特点:1.......
  • javaSE基础06(final,常用类,基本数据类型的封装)
    Final关键字(用法:类不想被人继承 ):修饰类:最终的类,不可以被继承 比如String;修饰方法:方法不可以被重写;修饰属性:不可以被重新赋值,但是可以改变变量里的内容;publicclassStudent{Stringname;publicstaticvoidmain(String[]args){finalS......
  • Java程序的main主线程的运行过程
    在Java虚拟机进程中,执行程序代码的任务是由线程来完成的。每当用java命令启动一个Java虚拟机进程,Java虚拟机就会创建并启动一个main主线程,该线程从程序入口main()方法开始执行。main主线程执行main()方法下面以例程1的Sample为例,介绍线程的运行过程。例程1 Sample.javapublicclas......
  • Java零基础入门-基本类型转换、包装类、自动装箱、自动拆箱
    前言在Java编程中,经常需要进行基本类型之间的转换以及包装类与基本类型之间的转换。本文将介绍Java中基本类型转换、包装类、自动装箱与自动拆箱的概念和用法。摘要本文将介绍Java中的基本类型转换、包装类、自动装箱与自动拆箱的概念和应用。首先,我们将讨论基本类型转换的概念......
  • 初识C语言
    什么是C语言?C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。......
  • java实现朴素rpc
    五层协议中,RPC在第几层?五层协议应用层传输层网络层链路层物理层我不知道,我要去大气层!远程过程调用(RPC),比较朴素的说法就是,从某台机器调用另一台机器的一段代码,并获取返回结果。这之前的一个基层问题就是进程间通信方式(IPC),从是否设计网络通信分为:......