JDBC基础

本文详细介绍了Java数据库连接(JDBC)技术,包括其接口规范、常用接口如Connection、Statement、ResultSet和DriverManager的使用,以及通过JDBC进行数据库操作的具体步骤,如加载驱动、获取连接、执行SQL命令和处理结果集。

JDBC

1 介绍

java DataBase Connectify:java数据库连接技术,用于操作数据库。例如:mysql,Oracle,sql-Server。

JDBC实际上是一套用于连接数据库的接口规范。

2 JDBC常用接口

java…sql.*:所有JDBC接口都保存在这个包下面。

  • Connection:数据库连接
  • Statement:执行sql命令;
  • ResultSet:结果集;
  • DriverManager:获取Connection的工具。

3 使用JDBC的步骤

第一步:导入驱动包;

第二步:加载驱动;

第三步:获取数据库连接;

第四步:获取Statement对象,调用execute方法把SQL命令发送数据库执行;

数据库接收到发送过来的SQL命令后,会先检查SQL语法是否正确,如果正确编译SQL,最后执行SQL。

第五步:处理ResultSet结果集;

第六步:关闭资源;

4 举例

4.1 加载驱动

static {
		// 加载驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

4.2 单个删除

// 删除
	private static void testDelete(int studentId) {
		try (
			// 需要关闭的资源定义在这里
			// 获取数据库连接
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/aa",  // 数据库URL
					"root",  // 用户名
					"root"); // 密码
			// 创建PreparedStatement对象
			PreparedStatement pstmt = conn.prepareStatement(
					"delete from student where stu_id = ?");
		) {
			// 设置sql的参数
			pstmt.setInt(1, 5);
			// 执行sql命令
			pstmt.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}

4.3 多个删除:

// 批量删除
	private static void testDelete(int[] stuIds) {
		try (
			// 需要关闭的资源定义在这里
			// 获取数据库连接
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/aa",  // 数据库URL
					"root",  // 用户名
					"root"); // 密码
			// 创建PreparedStatement对象
			PreparedStatement pstmt = conn.prepareStatement(
					"delete from student where stu_id = ?");
		) {
			for (int id : stuIds) {
				pstmt.setInt(1, id);
				// 把参数添加到PreparedStatement对象中
				pstmt.addBatch();
			}
			// 执行sql命令
			pstmt.executeBatch();
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}

4.4 修改:

// 修改
	private static void testUpdate(int studentId, String name) {
		try (
			// 需要关闭的资源定义在这里
			// 获取数据库连接
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/aa",  // 数据库URL
					"root",  // 用户名
					"root"); // 密码
			// 创建PreparedStatement对象
			PreparedStatement pstmt = conn.prepareStatement(
					"update student set stu_name = ? where stu_id = ?");
		) {
			// 设置sql的参数
			pstmt.setString(1, name);
			pstmt.setInt(2, studentId);
			// 执行sql命令
			pstmt.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}

4.5 查询:

// 查询
	private static void testQuery() {
		try (
			// 获取数据库连接
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/aa", 
					"root", 
					"root");
			// 创建PreparedStatement对象
			PreparedStatement pstmt = conn.prepareStatement(
					"select * from student");
			// 执行查询
			ResultSet rs = pstmt.executeQuery();
		) {
			// 遍历结果集
			while (rs.next()) { 
				int stuId = rs.getInt("stu_id");
				String stuName = rs.getString("stu_name");
				boolean gender = rs.getBoolean("gender");
				Date birthdate = rs.getDate("birthdate");
				String phone = rs.getString("phone");
				String hobby = rs.getString("hobby");
				System.out.println(stuId + ", " + stuName + ", "
					+ gender + "," + birthdate + "," + phone + "," + hobby);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值