java JDBC编程

本文详细介绍了JDBC(Java Database Connection)的基本概念,包括其主要操作类和接口,如Connection、Statement、PreparedStatement、ResultSet和DriverManager。同时,文章提供了如何使用JDBC进行数据库连接、更新、删除和查询的具体示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC 简介

JDBC:Java Database Connection,表示数据库连接,是 java 中专门提供的一组用于操作数据库的标准,所有的数据
库生产商如果要是想为 java 提供支持,则必须支持此标准,既然是标准的话,所以说 JDBC 实际上是一套类库的接口。
主要的操作类和接口:Connection 接口、Statement 接口、PreapredStatement 接口、ResultSet 接口、DriverManager 类
JDBC 的主要分类:
1、 JDBC-ODBC 桥连接:使用微软的 ODBC 进行数据库的连接,JDBC  ODBC  DB,因为中间加入了一
个 ODBC 的过渡,所以这样的操作性能将是非常低的。所以,只要是开发就不会有人使用此方式。但是此种方式是
SUN 本身提供的最原始连接,所以所有的操作类库都是最新的。
2、 JDBC 连接,直接使用各个数据库生产商提供的数据库连接程序,进行数据库操作,JDBC  DB,这样的
性能较高,所以在开发中基本上都使用此种形式。
3、 JDBC 网络连接,在正常操作中,不可能每一台电脑上都安装一个数据库。通过网络连接不同主机的数据
库,此操作也将由各个数据库生产商提供支持。

通过以上的表结构,写出数据库的创建脚本:

DROP TABLE person ;
CREATE TABLE person(
pid INT(11) PRIMARY KEY NOT NULL ,
name VARCHAR(20) NOT NULL ,
sex CHAR(1) NOT NULL ,
birthday DATE ,
salary FLOAT(7,2)
) ;

连接数据库

1、 数据库的驱动程序地址:jdbc:mysql://localhost:3306
2、 数据库的连接地址:mysql://localhost:3306/test
3、 用户名:root
4、 密码:root
但是,还需要以下的几个类支持:
1、 Class 类,通过 Class 类加载驱动程序
2、 DriverManager 类,通过 DriverManager 管理驱动,并可以取得连接,连接时需要地址、用户名、密码
3、 连接通过 Connection 进行接收

public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
System.out.println(conn);
// 3、关闭
conn.close();

使用 Statement 接口进行数据库的更新操作

public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
String sql = "INSERT INTO person(pid,name,sex,birthday,salary) "
+ "VALUES (1,'张三','男',now(),899)";
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
stmt.executeUpdate(sql); // 执行SQL语句
// 3、关闭
stmt.close();
conn.close();

执行数据更新操作

使用 UPDATE 语法就可以完成数据库的更新操作:UPDATE 表名称 SET 列=值,… WHERE 更新条件

public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
int pid = 3;
String name = "赵六";
String sex = "女";
float salary = 9000.0f;
String sql = "UPDATE person SET name='" + name + "',sex='" + sex
+ "',salary=" + salary + " WHERE pid=" + pid;
System.out.println(sql);
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
stmt.executeUpdate(sql); // 执行SQL语句
// 3、关闭
stmt.close();
conn.close();

执行数据库删除操作

使用 DELETE 执行数据库的删除操作,语法:DELETE FROM 表名称 WHERE 删除条件。

删除编号是 4 的人员

public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
public static final String DBUSER = "root";
public static final String DBPASS = "root";
public static void main(String[] args) throws Exception {
    Connection conn = null; // 用于接收数据库连接
    Statement stmt = null; // 数据库操作
    int pid = 4;
    String sql = "DELETE FROM person WHERE pid=" + pid;
    System.out.println(sql);
    // 1、加载数据库驱动程序
    Class.forName(DBDRIVER);
    // 2、数据库连接
    conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
    stmt = conn.createStatement(); // 取得Statement实例
    int len = stmt.executeUpdate(sql); // 执行SQL语句
    System.out.println("更新了" + len + "行数据!");
    // 3、关闭
    stmt.close();
    conn.close();

使用 ResultSet 接口接收查询结果

Connection conn = null; // 用于接收数据库连接
Statement stmt = null; // 数据库操作
ResultSet rs = null; // 接收查询结果
// 在查询时,必须明确的写出要查询的具体列,这是一个明确的开发标准
String sql = "SELECT pid,name,sex,birthday,salary FROM person";
System.out.println(sql);
// 1、加载数据库驱动程序
Class.forName(DBDRIVER);
// 2、数据库连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); // 数据库连接
stmt = conn.createStatement(); // 取得Statement实例
rs = stmt.executeQuery(sql);// 执行查询操作
while (rs.next()) {// 指针向下移动
int pid = rs.getInt("pid");
String name = rs.getString("name");
String sex = rs.getString("sex");
Date date = rs.getDate("birthday");
float salary = rs.getFloat("salary");
System.out.println("编号:" + pid + ",姓名:" + name + ",性别:" + sex
+ ",生日:" + date + ",工资:" + salary);
}
// 3、关闭
rs.close();
stmt.close();
conn.close();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值