Java复习笔记16【JDBC更新与查询】

这篇博客详细介绍了如何使用Java的JDBC进行数据库的更新和查询操作。通过一个实例展示了如何建立数据库连接、创建Statement对象、执行SQL语句(包括insert、update和select),以及如何遍历和获取ResultSet中的数据。

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

package com.lesson12.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*
 * 了解JDBC更新与查询
 * */
/*
 * 总结:
 * 1.结果集:ResultSet res=stmt.executeQuery(sql)
 * 	结果集是一种存储数据的类型,可抽象成一张表,只能逐行进行操作
 * 2.Statement接口执行sql语句的方法:
 * (1)int rows=stmt.executeUpdate(sql);
 * (2)ResultSet res=stmt.executeQuery(sql);
 * 3.ResultSet常用方法:
 * (1)boolean has=res.next()获取下一行记录
 * (2)XXXX values=rs.getXXXX("字段名") 
 * 		获取结果集中某字段的值(XXX表示字段的类型)
 * */
public class Query {
	public static void main(String args[]){
		String url = null;
		String user = null;
		String password = null;
		Connection conn = null;
		Statement stmt = null;
		try{
			//1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			//2.创建连接对象
			url = "jdbc:mysql://localhost:3308/test";
			conn = DriverManager.getConnection(url,"root","mysql");
			
			//3.创建语句对象
			stmt = conn.createStatement();
			
			//4.执行语句:Statement接口提供了多种执行SQL语句的方法(以下只介绍两种)

			/*
			 * 方法:public int executeUpdate(String sql)
			 * 对象:Statement
			 * 功能:执行sql更新语句,执行数据库的增加、删除和修改操作
			 * 参数:String sql 更新语句,如insert、update、delete等
			 * 返回值:int 被影响的行数,即数据库中被更新的记录数
			 * */
			String insertSql = "insert into student values (5,'孙三',21)";
			int rows = stmt.executeUpdate(insertSql);
			System.out.println("被影响的行数是" + rows);
			
			/*
			 * 方法:ResultSet executeQuery(String sql)
			 * 对象:Statement
			 * 功能:执行sql查询语句,得到查询结果集合
			 * 参数:String sql select查询语句
			 * 返回值:ResultSet 查询结果集合
			 * */
			String selectSql = "select * from student";
			ResultSet res = stmt.executeQuery(selectSql);
			//ResultSet作为一种类型,用于存储数据库中的记录的集合,只能逐行操作
			System.out.println("查询结果是"+res);
			//查询结果是com.mysql.jdbc.ResultSet@1bab2a6
			
			/*
			 * 读取查询后结果集中记录的具体内容(先获取行,再获取列,即可得单元格内容)
			 * ---------------------------------------
			 * 方法:boolean next()
			 * 对象:ResultSet
			 * 功能:用于获取结果集的下一行(下一个记录)
			 * 参数:无
			 * 返回值:boolean  表示是否能够获取到记录
			 * 【注意】
			 * 在得到查询结果集res之后,在要查询第一行结果之前,必须先使用rs.next(),
			 * 因为查询结果集时,res默认不指向结果集第一行,而是第一行之前(默认before 
			 * the first row),如果结果集为空集,没有第一行
			 * ----------------------------------------
			 * 方法:XXXX getXXXX(String columnName)
			 * 对象:ResultSet
			 * 功能:获取某行记录中的指定字段(即获取列的内容)
			 * 参数:String columnName 字段名
			 * 返回值:XXXX 字段的内容
			 * */
			 while(res.next()){ //每次next()一次,将获取下一条记录
				 //根据字段名获取字段值
				 int Sno = res.getInt("Sno");
				 String Sname = res.getString("Sname");
				 int age = res.getInt("age");
				 System.out.println("获取到记录:Sno="+Sno+";Sname="+Sname+";age="+age);
			 }
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值