1. 首页
  2. 软件开发
  3. JAVA
  4. Java用JDBC链接mysql

Java用JDBC链接mysql

  • 发布于 2024-09-21
  • 0 次阅读

一、什么是JDBC:

是Java平台上的标准数据库访问技术。它提供了一套API(应用程序编程接口),允许Java应用程序与各种类型的数据库进行交互,包括关系型数据库(如MySQL、Oracle、SQL Server等)和非关系型数据库(NoSQL)。JDBC为开发者提供了一个统一的接口、使得他们能够编写一次数据库代码,而无需针对不同数据库做特别修改就能在多种数据库系统上运行。

二、JDBC包括什么:

  1. DriverManager:这是一个类,用于加载JDBC驱动程序并建立与数据库的连接。它提供了获取数据库连接的方法,如`getConnection()`。

  2. Connection:这是一个接口,代表与数据库的连接。通过这个接口,你可以创建`Statement`、`PreparedStatement`或`CallableStatement`对象,这些对象用于执行SQL语句。

  3. Statement:这是一个接口,用于发送SQL语句到数据库并接收结果。它有几种类型,包括:

  4. `Statement`:用于执行简单的SQL语句。

  5. `PreparedStatement`:用于执行预编译的SQL语句,可以防止SQL注入并提高性能。

  6. `CallableStatement`:用于执行存储过程或函数调用。

  7. ResultSet:这是一个接口,用于表示从数据库检索出来的结果集。你可以遍历这个结果集来获取查询结果的每一行数据。

  8. SQLException:这是一个异常类,用于表示任何与数据库相关的错误。

三、应用实例:

1、查:

 public void cha() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
       // System.out.println(root);
        //实现功能
       // String sql="select * from courses ";
        //创建将sql语句应用到数据库的对象
       // Statement statement = root.createStatement();
        //执行语句得到结果
        ResultSet resultSet = root.createStatement().executeQuery("select * from courses ");
       //通过next指向结果
        while(resultSet.next()){
            System.out.println(resultSet.getString("cno")+resultSet.getString("cname")+resultSet.getInt("tno"));
        }
        //关闭资源
        root.createStatement().close();
        root.close();
    }

核心代码讲解:

结果输出:

2、删:

  public void shanchu() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
        //实现功能
        //执行语句得到结果
        int resultSet = root.createStatement().executeUpdate("DELETE FROM courses WHERE tno=555;");
        //通过next指向结果
        System.out.println(resultSet);//如果删除成功就显示为1
        //关闭资源
        root.createStatement().close();
        root.close();
    }
```
executeUpdate()是在除查找外用到的方法;

输出结果:

这是删除失败的,成功的话为1

3、改 :

 public void update() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
        //实现功能
        //执行语句得到结果
        int resultSet = root.createStatement().executeUpdate("UPDATE courses SET cno='7-654', cname='计算机编程',tno=452 WHERE cno='-647' ;");
        //通过next指向结果
        System.out.println(resultSet);
        //关闭资源
        root.createStatement().close();
        root.close();

输出结果:

如果失败就为0

4、增:

 public void insert() throws ClassNotFoundException, SQLException {
        //加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //获取链接
        Connection root = DriverManager.getConnection("jdbc:mysql://localhost:3306/lianxi?useSSL=false&serverTimezone=UTC", "root", "123456");
       int resultSet = root.createStatement().executeUpdate("insert into courses value ('5-111','计算机',555)");
        //通过next指向结果
        System.out.println(resultSet);
        //关闭资源
        root.createStatement().close();
        root.close();
    }

结果输出:

原文链接: https://blog.csdn.net/daibadetianshi/article/details/140432924