一、什么是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();
}
结果输出: