JDBC---概述+实现详细步骤

JDBC 概念:

1)JDBC API:由SUN公司提供的一组规范(接口和类)
2) JDBC驱动:由数据库厂商提供的JDBC驱动,驱动就是对JDBCAPI的实现,封装在一个jar文件
3) 程序员:将要连接的数据库对应的jar包放到项目中,调用JDBCAPI中的方法就可以去操作数据库了。

JDBC访问数据库的详细步骤:

1)创建一个java项目,将oracle驱动jar包拷贝到项目的lib目录中,并且将jar包添加到构建路径中
在这里插入图片描述
添加到构建路径后,图标变成下面的样子
在这里插入图片描述

  1. 按照如下步骤来操作数据库,
    executeUpdate(String sql):执行更新,包含insert,update和delete操作
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(删除语句),并返回结果
		int i = stmt.executeUpdate("delete from   dept   where deptno=41");
		// 第5步:处理结果
		if (i > 0) {
			System.out.println("删除数据成功");
		} else {
			System.out.println("删除数据失败");
		}
		// 第6步:关闭资源
		stmt.close();
		conn.close();
	}

JDBC实现查询操作

调用Statement的executeQuery(String sql)方法返回一个ResultSet对象,此对象提供了getXxx()方法来获取每个字段的值.
ResesultSet有一个记录指针,最开始指针在表头行,每调用一次next()就将指针往下移动一行
Next()方法返回true或false,如果指针所指向的那一行有记录,就返回true,否则返回false.通过while()循环来循环调用next()就可以遍历所有的数据行.
getXxx():表示以某种java类型来获取字段的值,例如字段类型是number(2),那么用getInt(字段名)或getInt(索引)来获取字段的值.
getString(“字段名”)获取char或varchar2类型的字段的值
注意:字段索引从1开始.

public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(查询语句),并返回结果
		ResultSet rs = stmt.executeQuery("select *  from dept");
		// 第5步:处理结果
		// next()方法将指针往下移动,如果当前行有记录返回true,否则返回false
		while (rs.next()) {
			// 获取当前行的每个列的数据
			int deptno = rs.getInt(1);
			String dname = rs.getString("dname");
			String loc = rs.getString("loc");
			System.out.println(deptno + "..." + dname + "..." + loc);
		}
		// 第6步:关闭资源
		rs.close();
		stmt.close();
		conn.close();
	}
```java
<font color=red>注意:如果通过字段的索引获取字段值,索引从1开始</font>

int deptno = rs.getInt(1);

JDBCTest1

package com.sxt.test;

import java.rmi.server.SocketSecurityException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest1 {

	// 数据库服务器的地址
	private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	// 连接服务器的用户名
	private static String user = "scott";
	// 连接服务器的用户密码
	private static String password = "tiger";

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(插入语句),并返回结果
		int i = stmt.executeUpdate("insert into dept values(41,'市场部','杭州')");
		// 第5步:处理结果
		if (i > 0) {
			System.out.println("插入数据成功");
		} else {
			System.out.println("插入数据失败");
		}
		// 第6步:关闭资源
		stmt.close();
		conn.close();
	}
}

JDBCTest2

package com.sxt.test;

import java.rmi.server.SocketSecurityException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest2 {

	// 数据库服务器的地址
	private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	// 连接服务器的用户名
	private static String user = "scott";
	// 连接服务器的用户密码
	private static String password = "tiger";

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(修改语句),并返回结果
		int i = stmt.executeUpdate("update  dept  set  dname='销售部',loc='南京' where deptno=41");
		// 第5步:处理结果
		if (i > 0) {
			System.out.println("修改数据成功");
		} else {
			System.out.println("修改数据失败");
		}
		// 第6步:关闭资源
		stmt.close();
		conn.close();
	}
}

JDBCTest3

package com.sxt.test;

import java.rmi.server.SocketSecurityException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest3 {

	// 数据库服务器的地址
	private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	// 连接服务器的用户名
	private static String user = "scott";
	// 连接服务器的用户密码
	private static String password = "tiger";

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(删除语句),并返回结果
		int i = stmt.executeUpdate("delete from   dept   where deptno=41");
		// 第5步:处理结果
		if (i > 0) {
			System.out.println("删除数据成功");
		} else {
			System.out.println("删除数据失败");
		}
		// 第6步:关闭资源
		stmt.close();
		conn.close();
	}
}

JDBCTest4

package com.sxt.test;

import java.rmi.server.SocketSecurityException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest4 {

	// 数据库服务器的地址
	private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
	// 连接服务器的用户名
	private static String user = "scott";
	// 连接服务器的用户密码
	private static String password = "tiger";

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// 第1步:加载驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		// 第2步:创建连接,调用DriverManager.getConnection方法,返回一个连接对象Connection

		Connection conn = DriverManager.getConnection(url, user, password);
		// System.out.println(conn);
		// 第3步:创建SQL命令发送器
		Statement stmt = conn.createStatement();
		// 第4步:执行SQL命令(查询语句),并返回结果
		ResultSet rs = stmt.executeQuery("select *  from dept");
		// 第5步:处理结果
		// next()方法将指针往下移动,如果当前行有记录返回true,否则返回false
		while (rs.next()) {
			// 获取当前行的每个列的数据
			int deptno = rs.getInt(1);
			String dname = rs.getString("dname");
			String loc = rs.getString("loc");
			System.out.println(deptno + "..." + dname + "..." + loc);
		}
		// 第6步:关闭资源
		rs.close();
		stmt.close();
		conn.close();
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值