JDBC概述
JDBC是一种可用于执行SQL语句的Java API(应用程序设计接口),是连接数据库和Java应用程序的纽带。 要对数据库进行操作,首先应建立与数据库的连接。通过JDBC的API提供的各种类可以实现对数据表中的数据进行查找、添加、修改、删除等操作。
Java中常用的类与接口
Java语言提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地进行据访问和处理,这些类和接口都在java.sql包中。
在java.sql包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句以准备语句和运行批处理查询等。同时有一些高级的处理,如批处理更新、事务隔离和滚动结果集等。
JDBC常用的类与接口如表所示:
类与接口 | 说明 |
---|---|
DriverManager类 | 负责加载各种不同驱动程序(Driver),并根据不同的请求向调用者返回相应的数据库连接(Connection) |
Driver | 驱动程序,会将自身加载到DriverManager 中去,处理相应的请求并返回相应的致据库连接(Connection) |
Connection | 数据库连接,负责进行数据库间的通信,SQL 执行以及事务处理都在某个特定Connection 环境中进行。可以产生用以执行 SQL的 Statement |
Statement | 用以执行 SQL 查询和更新(针对静态 SQL 语句和单次执行) |
PreparedStatement | 用以执行包含动态参数的 SQL 查询和更新(在服务器端编译,允许重复执行以提高效率) |
CallableStatement | 用以调用数据库中的存储过程 |
ResultSet | 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成 |
ResultSetMetaData | 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象 |
1、登录Mysql:(这里使用的是mysql8.0版本)
2、查看数据库:(这里我们提前创建好了数据库db_shop,并添加了相应的数据)
3、连接数据库;查看数据表:
4、查看goods表中的数据
5、我们用JDBC连接数据库,删除id为33的这条记录
(代码中增删查改的部分都已给出,这里我们进行删除,然后进行查询)
package view;
import java.sql.*;
public class HelloJDBC {
public static void main(String[] args) throws ClassNotFoundException {
Statement stmt=null;
ResultSet r = null;
Connection con=null;
//1.注册驱动
String dviver="com.mysql.cj.jdbc.Driver";
//2.获取连接
String url="jdbc:mysql://localhost:3306/db_shop";
//db_shop为数据库名,修改为你自己使用的数据库名
String userName="root";
String userPwd="";
try {
Class.forName(dviver);
con= DriverManager.getConnection(url, userName, userPwd);
System.out.println("连接数据库成功");
//3.获取数据库操作对象
stmt=con.createStatement();
//4.执行sql
//添加
//String sql="insert into goods(id,type) values(44,'水果')";
// int count=stmt.executeUpdate(sql);
//System.out.println(count==1?"yes":"no");
//删除
String sql3="delete from goods where id=33";
int n=stmt.executeUpdate(sql3);
System.out.println("发送sql3成功");
//更新
//String sql4="update goods set type='蔬菜' where id>=6 ";
// int count=stmt.executeUpdate(sql4);
// System.out.println(count);
//查询
String sql2="select * from goods";
r=stmt.executeQuery(sql2);
System.out.println("编号"+"类型");
//5.处理查询结果集
//删除
if(n>0){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
while(r.next()) {
System.out.println(r.getString("id")+","+r.getString("type"));
}
}catch(Exception e){
e.printStackTrace();
System.out.println("连接失败");
}
finally {
//6.回收数据库资源
try {
if(stmt!=null) {
stmt.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
try {
if(r!=null) {
r.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
try {
if(con!=null) {
con.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
结果如图所示: