• 数据库操作JDBC


    什么是JDBC

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

    JDBC在应用程序与数据库之间起到了一个桥梁作用,当应用程序使用JDBC访问特定的数据库时,需要通过不同数据库驱动与不同的数据库进行连接,连接后即可对该数据库进行相应的操作

    Driver接口

    Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。需要注意的是,在编写JDBC程序时,必须把所使用的数据库驱动程序或类加载到项目的classpath中(这里指MySQL驱动的jar包)

    DriverManager类

    DriverManager类用于加载JDBC驱动并且创建与数据库的连接。在DriverManager类中定义了两个比较重要的静态方法

     Connection接口

    Connection接口代表Java程序和数据库的连接,只有获取该连接对象后,才能访问数据库,并操作数据表。在Connection接口中定义了一系列的方法

     Statement接口

    Statemen接口用于执行静态的SQL语句,并返回一个结果对象。Statement接口对象可以通过
    Connection实例的createStatemen()方法获得,该对象会把静态的SQL语句发送到数据库中编译执行,然后返回数据库处理的结果
    在Statement接口中,提供了3个常用的执行SQL语句的方法

     PreparedStatement接口

    PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。该接口扩展了带有参数的SQL语句的执行操作,应用该接口中的SQL语句可以使用占位符 " ? " 来代替其参数,然后通过setXxx()方法为SQL语句的参数赋值,并且PreparedStatement提供了批量插入的方法。在PreparedStatement接口中提供了一些常用的方法,

     ResultSet接口

    ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个纸箱表格数据行的游标(或指针)。ResultSet对象初始化时,游标在表格第一行之前,调用next()方法可以将游标移动到下一行。如果下一行没有数据,则返回false。在应用程序中经常使用 next()方法作为while循环的条件来迭代ResultSet结果集

     实现第一个JDBC程序

    public class Example01 {
        public static void main(String[] args) {
            Connection conn=null;
            Statement stmt=null;
            ResultSet rst=null;
            try {
                //1.加载数据库的驱动
                Class.forName("com.mysql.cj.jdbc.Driver");
                
                //2.获取数据库的连接对象
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student?serverTimezone=UTC", "root", "Ms961228");
                
                //3.编写sql语句
                String sql="select * from users";
                
                //4.获取Statement对象,执行sql语句
                stmt = conn.createStatement();
                rst = stmt.executeQuery(sql);
                
                //5.处理结果集
                while(rst.next()) {
                    int id = rst.getInt("id");
                    String username = rst.getString("username");
                    String password = rst.getString("password");
                    String email = rst.getString("email");
                    Date birthday =rst.getDate("birthday");
                    Users users = new Users(id, username, password, email, birthday);
                    System.out.println(users.toString());
                }
                
                //6.释放资源
            }catch (Exception e) {
                e.printStackTrace();
            }finally {
                if(conn!=null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if(stmt!=null) {
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if(rst!=null) {
                    try {
                        rst.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    学习中,博客都是自己学习用的笔记,持续更新改正。。。
  • 相关阅读:
    Miniconda 虚拟环境安装及应用
    python random使用方法
    MyQR库自动为网址生成二维码
    setResult()的调用时机
    Eclipse里选中一个变量后,这个类里的该变量不变色了?
    Android开发的技术层次
    最封闭的开源系统,话说Android的八宗罪
    制度是绝情的,管理是无情的,执行是合情的
    windows下eclipse搭建android_ndk开发环境
    UI/GUI/UE/UX/ID/UED/UCD的区别
  • 原文地址:https://www.cnblogs.com/Tunan-Ki/p/11673109.html
Copyright © 2020-2023  润新知