Java基础-初识JDBC

打印 上一主题 下一主题

主题 863|帖子 863|积分 2589

目录

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


JDBC简介


  • 什么是JDBC
    JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。
2.什么是mysql-connector-java
mysql-connector-java 是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。

JDBC项目


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

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


JDBC的导入


  • 下载JDBC(MySQL版)

  • 跳转至版本选择页面

  • 选择版本下载

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

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

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

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

  • 打开项目,点击File->roject Structure

  • 点击Libraries -> + ->Java

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

  • 点击ok

  • 点击ok

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


JDBC的使用


  • 必须提前安装MySQL并且MySQL可用
  • 加载MySQL驱动程序
  1. package com.example.aji;
  2. public class Main {
  3.     public static void main(String[] args) {
  4.         try {
  5.             //加载MySQL驱动程序
  6.             Class.forName("com.mysql.cj.jdbc.Driver");
  7.         }catch (Exception e){
  8.             e.printStackTrace();
  9.         }
  10.         //打印出Hello world!表名驱动程序加载成功
  11.         System.out.println("Hello world!");
  12.     }
  13. }
复制代码

  • DriverManager类
    管理一组JDBC驱动程序的基本服务。一些常用方法:

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

    • close()
      立即释放此 Connection对象的数据库和JDBC资源,而不是等待它们自动释放。
    • createStatement()
      创建一个 Statement对象,用于将SQL语句发送到数据库。
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. public class Main {
    5.     public static void main(String[] args) {
    6.         try {
    7.             Class.forName("com.mysql.cj.jdbc.Driver");
    8.             //mysql数据库相关信息
    9.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    10.             String user="root";
    11.             String password="123456789";
    12.             Connection connection = DriverManager.getConnection(url,user,password);
    13.             connection.close();
    14.         }catch (Exception e){
    15.             e.printStackTrace();
    16.         }
    17.         System.out.println("Hello world!");
    18.     }
    19. }
    复制代码

  • Statement类
    用于执行静态SQL语句并返回其生成的结果的对象。一些常用方法:

    • close()
      立即释放此 Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。
    • executeUpdate​(String sql)
      执行给定的SQL语句,这可能是 INSERT , UPDATE ,或 DELETE语句,或者不返回任何内容,如SQL DDL语句的SQL语句。
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.Statement;
    5. public class Main {
    6.     public static void main(String[] args) {
    7.         try {
    8.             Class.forName("com.mysql.cj.jdbc.Driver");
    9.             //mysql数据库相关信息
    10.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    11.             String user="root";
    12.             String password="123456789";
    13.             Connection connection = DriverManager.getConnection(url,user,password);
    14.             Statement statement = connection.createStatement();
    15.             String updateSql="CREATE TABLE `t_person` (\n" +
    16.                     "  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',\n" +
    17.                     "  `name` varchar(30) NOT NULL COMMENT '姓名',\n" +
    18.                     "  `birthdate` datetime NOT NULL COMMENT '出生日期',\n" +
    19.                     "  PRIMARY KEY (`id`)\n" +
    20.                     ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
    21.             int result = statement.executeUpdate(updateSql);
    22.             System.out.println(result);
    23.             String insertSql="insert into t_person(name,birthdate) values('aji',now()),('aji',now())";
    24.             result = statement.executeUpdate(insertSql);
    25.             System.out.println(result);
    26.             statement.close();
    27.             connection.close();
    28.         }catch (Exception e){
    29.             e.printStackTrace();
    30.         }
    31.         System.out.println("Hello world!");
    32.     }
    33. }
    复制代码

    • executeQuery​(String sql)
      执行给定的SQL语句,该语句返回单个 ResultSet对象。
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.Statement;
    5. import java.sql.ResultSet;
    6. public class Main {
    7.     public static void main(String[] args) {
    8.         try {
    9.             Class.forName("com.mysql.cj.jdbc.Driver");
    10.             //mysql数据库相关信息
    11.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    12.             String user="root";
    13.             String password="123456789";
    14.             Connection connection = DriverManager.getConnection(url,user,password);
    15.             Statement statement = connection.createStatement();
    16.             String querySql="select * from t_person";
    17.             ResultSet resultSet = statement.executeQuery(querySql);
    18.             //打印查询结果
    19.             while (resultSet.next()) {
    20.                 System.out.print(resultSet.getInt("id"));
    21.                 System.out.print(resultSet.getString("name"));
    22.                 System.out.println(resultSet.getDate("birthdate"));
    23.             }
    24.             resultSet.close();
    25.             statement.close();
    26.             connection.close();
    27.         }catch (Exception e){
    28.             e.printStackTrace();
    29.         }
    30.         System.out.println("Hello world!");
    31.     }
    32. }
    复制代码

    • execute​(String sql)
      执行给定的SQL语句并返回boolean值
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.Statement;
    5. import java.sql.ResultSet;
    6. public class Main {
    7.     public static void main(String[] args) {
    8.         try {
    9.             Class.forName("com.mysql.cj.jdbc.Driver");
    10.             //mysql数据库相关信息
    11.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    12.             String user="root";
    13.             String password="123456789";
    14.             Connection connection = DriverManager.getConnection(url,user,password);
    15.             Statement statement = connection.createStatement();
    16.             String querySql="select * from t_person";
    17.             ResultSet resultSet = statement.executeQuery(querySql);
    18.             boolean execute = statement.execute(querySql);
    19.             //打印查询结果
    20.             System.out.println(execute);
    21.             resultSet.close();
    22.             statement.close();
    23.             connection.close();
    24.         }catch (Exception e){
    25.             e.printStackTrace();
    26.         }
    27.         System.out.println("Hello world!");
    28.     }
    29. }
    复制代码

  • ResultSet类
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。一些常用方法:

    • close()
      立即释放此 Statement对象的数据库和JDBC资源,而不是等待它自动关闭时发生。
    • next()
      将光标从当前位置向前移动一行。
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.Statement;
    5. import java.sql.ResultSet;
    6. public class Main {
    7.     public static void main(String[] args) {
    8.         try {
    9.             Class.forName("com.mysql.cj.jdbc.Driver");
    10.             //mysql数据库相关信息
    11.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    12.             String user="root";
    13.             String password="123456789";
    14.             Connection connection = DriverManager.getConnection(url,user,password);
    15.             Statement statement = connection.createStatement();
    16.             String querySql="select * from t_person";
    17.             ResultSet resultSet = statement.executeQuery(querySql);
    18.             boolean execute = statement.execute(querySql);
    19.             //打印查询结果
    20.             System.out.println(execute);
    21.             resultSet.close();
    22.             statement.close();
    23.             connection.close();
    24.         }catch (Exception e){
    25.             e.printStackTrace();
    26.         }
    27.         System.out.println("Hello world!");
    28.     }
    29. }
    复制代码

    • getInt​(String columnLabel)
      以Java编程语言中 int此 ResultSet对象的当前行中指定列的值。
    1. package com.example.aji;
    2. import java.sql.Connection;
    3. import java.sql.DriverManager;
    4. import java.sql.Statement;
    5. import java.sql.ResultSet;
    6. public class Main {
    7.     public static void main(String[] args) {
    8.         try {
    9.             Class.forName("com.mysql.cj.jdbc.Driver");
    10.             //mysql数据库相关信息
    11.             String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
    12.             String user="root";
    13.             String password="123456789";
    14.             Connection connection = DriverManager.getConnection(url,user,password);
    15.             Statement statement = connection.createStatement();
    16.             String querySql="select * from t_person";
    17.             ResultSet resultSet = statement.executeQuery(querySql);
    18.             boolean execute = statement.execute(querySql);
    19.             //打印查询结果
    20.             System.out.println(execute);
    21.             resultSet.close();
    22.             statement.close();
    23.             connection.close();
    24.         }catch (Exception e){
    25.             e.printStackTrace();
    26.         }
    27.         System.out.println("Hello world!");
    28.     }
    29. }
    复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表