使用JDBC操作数据库

1.什么是JDBC

Java提供了一套接口,用于接入不同的数据库!基本上主流的数据库都支持,这套接口的名字叫做JDBC。
Java应用程序通过JDBC来连接数据库时,其实就是在Java平台准备一套接口(接口:interface 它要使用必须要找寻对应的实现类!),然后不同的数据库厂商提供这些接口的实现类(驱动),然后再通过Java提供的驱动管理程序对驱动进行验证及安装,再然后我们就可以正常使用了。

在这里插入图片描述

2. JDBC的使用步骤

在这里插入图片描述
在这里插入图片描述

2.1 使用Connection接口连接和数据库建立连接

// registerDriver	注册/加载驱动
// Driver是一个接口 它需要寻找对应的实现类
Driver driver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);

2.2 Statement接口的使用-执行SQL语句

String ur1 = "jdbc:mysql://localhost:3306/需要连接的数据库名";
// 数据库用户名
String user = "***"
// 数据库用户密码
String password = "***"
Connection conn = DriverManager.getConnection(ur1,user,password);

2.3 ResultSet接口的使用-存储数据库返回的结果集

Statement statement = com.createStatement();
String sql = "select * from student";
ResultSet rs = statement.executeQuery(sql);

2.4 PerparedSttatement接口使用-特别的执行SQL语句的接口

// 4.对返回的数据结果集ResultSet进行解析
			// 这个结果集可以将其看作是一个二维表 
			// boolean next() 移动指针 判断是否有下一行数据
			while(rs.next()) {
				// int getInt(int columnIndex) 根据列索引取列的数据
				// int getInt(String columnLabel) 根据列名取列的数据
				int id = rs.getInt(1);
				String stuName = rs.getString("stuName");
				String address = rs.getString("address");
				System.out.println(id+" -- "+stuName+" -- "+address);
			}

DriverManager驱动管理器
它的作用是用来帮助进行驱动注册/加载的!最终实现驱动的管理

// 在MySQL提供的驱动Driver类中,它自己有一个静态代码块,当Driver类被加载的时候,它会自动执行注册驱动代码
// 所以意味着我们只需要保证这个类被加载 就可以确保驱动会被正常管理起来了!Class.forName("com.mysql.jdbc.Driver");

//
// Register ourselves with the DriverManager
//
static {
    try {
        java.sql.DriverManager.registerDriver(new Driver());
    } catch (SQLException E) {
        throw new RuntimeException("Can't register driver!");
    }
}

3. JDBC的增删改

添加数据

		Connection conn = null;
		Statement statement = null;
		try {
			// 1.注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 2.建立连接
			conn = DriverManager.getConnection("jdbc:mysql:///myschool", "root", "root");
			// 3.创建语句执行者/执行平台 
			statement = conn.createStatement();
			// 4.编写添加SQL语句并执行
			String sql = "insert into grade(gradeId,gradeName) values(5,'大学五年级')";
			int row = statement.executeUpdate(sql);
			// 5.解析结果
			System.out.println("影响行数为:"+row);
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			// 6.关流
			// 先开的后关
			if(statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

更改数据

		Connection conn = null;
		Statement statement = null;
		try {
			// 1.注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 2.建立连接
			conn = DriverManager.getConnection("jdbc:mysql:///myschool", "root", "root");
			// 3.创建语句执行者/执行平台 
			statement = conn.createStatement();
			// 4.编写更改SQL语句并执行
			String sql = "update grade set gradeName = '大学四年级' where gradeId = 5";
			int row = statement.executeUpdate(sql);
			// 5.解析结果
			System.out.println("影响行数为:"+row);
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			// 6.关流
			// 先开的后关
			if(statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

删除数据

		Connection conn = null;
		Statement statement = null;
		try {
			// 1.注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 2.建立连接
			conn = DriverManager.getConnection("jdbc:mysql:///myschool", "root", "root");
			// 3.创建语句执行者/执行平台 
			statement = conn.createStatement();
			// 4.编写删除SQL语句并执行
			String sql = "delete from grade where gradeId = 5";
			int row = statement.executeUpdate(sql);
			// 5.解析结果
			System.out.println("影响行数为:"+row);
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			// 6.关流
			// 先开的后关
			if(statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值