数据库操作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();
                }
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/Tunan-Ki/p/11673109.html