一、什么是JDBC:
是Java平台上的标准数据库访问技术。它提供了一套API(应用程序编程接口),允许Java应用程序与各种类型的数据库进行交互,包括关系型数据库(如MySQL、Oracle、SQL Server等)和非关系型数据库(NoSQL)。JDBC为开发者提供了一个统一的接口、使得他们能够编写一次数据库代码,而无需针对不同数据库做特别修改就能在多种数据库系统上运行。
二、JDBC包括什么:
1. DriverManager:这是一个类,用于加载JDBC驱动程序并建立与数据库的连接。它提供了获取数据库连接的方法,如`getConnection()`。
2. Connection:这是一个接口,代表与数据库的连接。通过这个接口,你可以创建`Statement`、`PreparedStatement`或`CallableStatement`对象,这些对象用于执行SQL语句。
3. Statement:这是一个接口,用于发送SQL语句到数据库并接收结果。它有几种类型,包括:
- `Statement`:用于执行简单的SQL语句。
- `PreparedStatement`:用于执行预编译的SQL语句,可以防止SQL注入并提高性能。
- `CallableStatement`:用于执行存储过程或函数调用。
4. ResultSet:这是一个接口,用于表示从数据库检索出来的结果集。你可以遍历这个结果集来获取查询结果的每一行数据。
5. 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();}
结果输出: