JDBC笔记

什么是JDBC?

JDBC,意为 Java Database Connectivity(Java数据库连接),是 SUN 公司为了统一各大数据库厂商的链接而制定的一套规范。它可以为多种关系数据库提供统一访问,由大多数的接口和一部分类组成,程序员可以根据这种基准构建更为高级的工具和接口,使数据库开发人员更易于操作数据库。

关系:SUN公司制定规范,数据库厂商实现规范,程序员使用规范  ----侵删

JDBC开发步骤

  1. 导入数据库驱动,把 jar 包导入到工程中去,加入编译路径(创建文件夹-->粘贴jar包-->build path)
  2. 加载驱动,将驱动程序配置到 claspath 中(Class.foeName("driver name"))
  3. 连接数据库,通过 Connection 和 DriverManager 类完成
  4. 操作数据库,通过 Statement、PreparedStatement 和 ResultSet 三个接口完成
  5. 关闭数据库
注册(加载)驱动

注册数据库厂商提供的驱动程序,只要使用Driver接口就可以完成,可以在程序里写静态代码块以完成加载

static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e){
			e.printStackTrace();
		}
	}

连接数据库

Connection配合DriverManager 与数据库连接,在上下文执行sql语句并由 ResultSet 返回结果。

Connection conn = null;
		Statement stmt = null;
		try {
			//	注册/加载 JDBC 驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			//	打开链接
			System.out.println("连接数据库······");
			conn = DriverManager.getConnection(DB_URL, USER, PASS);
			
			//	执行查询
			stmt = conn.createStatement();
			String sql = "select empno,ename,job from emp;";
			ResultSet rs = stmt.executeQuery(sql); //ResultSet 得到结果
查询结果

ResultSet对象有一个 next() 方法,返回布尔值以判断是否有下一条记录。

while(rs.next()) {
				//	通过字段检索
				int empno = rs.getInt("empno");
				String name = rs.getString("ename");
				String job = rs.getString("job");
				
				//	输出数据
				System.out.print("empno: " + empno);
				System.out.print("\tename: " + name);
				System.out.println("\tjob: " + job);
			}

代码实例

public static void main(String[] args) {
		Connection conn = null;
		Statement stmt = null;
		try {
			//	注册/加载 JDBC 驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			//	打开链接
			System.out.println("连接数据库······");
			conn = DriverManager.getConnection(DB_URL, USER, PASS);
			
			//	执行查询
			System.out.println("实例化 statement对······");
			stmt = conn.createStatement();
			String sql;
			sql = "select empno,ename,job from emp;";
			ResultSet rs = stmt.executeQuery(sql);
			
			//	展开结果集数据库
			while(rs.next()) {
				//	通过字段检索
				int empno = rs.getInt("empno");
				String name = rs.getString("ename");
				String job = rs.getString("job");
				
				//	输出数据
				System.out.print("empno: " + empno);
				System.out.print("\tename: " + name);
				System.out.println("\tjob: " + job);
			}
			//	完成后关闭
			rs.close();
			stmt.close();
			conn.close();
		}catch(SQLException se) {
			//	处理 JDBC 错误
			se.printStackTrace();
		}catch(Exception e) {
			//	处理 Class.forName 错误
			e.printStackTrace();
		}finally {
			//	关闭资源
			try {
				if(stmt!=null) stmt.close();
			}catch(SQLException se) {
				//	什么也不做
			}
			try {
				if(conn!=null) conn.close();
			}catch(SQLException se) {
				se.printStackTrace();
			}
		}
		System.out.println("查询完成,白白ヾ(•ω•`)o");
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值