JDBC与Java数据库编程基础----JDBC与Java数据库编程

简单易懂的JDBC连接数据库教程

JDBC(Java DataBase Connectivity)

  • 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。
  • 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。

JDBC核心接口与类

DriverManager类:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并注册后才可以使用,同时提供方法来建立与数据库的连接。
SQLException类:有关数据库操作的异常。
Connection类:特定数据库的连接(会话)。在连接上下文中执行SQL语句并返回结果。
PreparedStatement类:表示预编译的 SQL 语句的对象。
Statement类:用于执行静态 SQL 语句并返回它所生成结果的对象。
ResultSet 类:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成 。
CallableStatement :用于执行 SQL 存储过程的接口。

创建JDBC应用程序的步骤

  1. 载入JDBC驱动程序
  2. 定义连接URL
  3. 建立连接
  4. 创建Statement对象
  5. 执行查询或更新
  6. 结果处理
  7. 关闭连接

载入JDBC驱动包

  1. 第一步在工程目录文件夹下新建lib文件
    在这里插入图片描述
  2. 第二步将ojdbc6.jar这个文件复制到文件夹中。数字6是驱动的版本,版本号没关系,稳定能用就可以。
    ojdbc6.jar可以在数据库的安装目录下好到,如下图:
    ojdbc6.jar
  3. 第三步,配置构建路径
    右键ojdbc6.jar文件>Build>configure build path,点击configure build path后会生成如下文件:
    在这里插入图片描述

话不多说,上Demo(Statement类例子)

题目:使用java的jdbc查询emp表的全部信息
首先做一个Emp类,Emp类实际的开发中写在另外的一个包里面,本Demo写在_JDBCBean包下,代码如下:

package com.neuedu.chapter05._JDBCBean;
import java.util.Date;
public class Emp {
//数据库中类型和在这里定义的类型存在着映射射关系,这里定义的类型要和数据库定义的类型相同
	private int empno;
	private String Ename;
	private String job;
	private int mgr;
	private Date hiredate;
	private double Sal;
	private double comm;
	private int deptno;
	/**
	 * 默认构造器
	 */
	public Emp() {
		super();
		// TODO Auto-generated constructor stub
	}
	/**有参构造器
	 * @param empno
	 * @param ename
	 * @param job
	 * @param mgr
	 * @param hiredate
	 * @param sal
	 * @param comm
	 * @param deptno
	 */
	public Emp(int empno, String ename, String job, int mgr, Date hiredate, double sal, double comm, int deptno) {
		super();
		this.empno = empno;
		Ename = ename;
		this.job = job;
		this.mgr = mgr;
		this.hiredate = hiredate;
		Sal = sal;
		this.comm = comm;
		this.deptno = deptno;
	}
	//分别给每个属性添加get和set方法
	public int getEmpno() {
		return empno;
	}
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return Ename;
	}
	public void setEname(String ename) {
		Ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public int getMgr() {
		return mgr;
	}
	public void setMgr(int mgr) {
		this.mgr = mgr;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	public double getSal() {
		return Sal;
	}
	public void setSal(double sal) {
		Sal = sal;
	}
	public double getComm() {
		return comm;
	}
	public void setComm(double comm) {
		this.comm = comm;
	}
	public int getDeptno() {
		return deptno;
	}
	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}
	@Override
	public String toString() {
		return "Emp [empno=" + empno + ", Ename=" + Ename + ", job=" + job + ", mgr=" + mgr + ", hiredate=" + hiredate
				+ ", Sal=" + Sal + ", comm=" + comm + ", deptno=" + deptno + "]";
	}
}

再写一个操作数据库JDBC类,按照 创建JDBC应用程序的步骤来,代码如下:

package com.neuedu.chapter05._JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.neuedu.chapter05._JDBCBean.Emp;
public class JDBCDemo {
	public ArrayList<Emp> selectEmp() {  //返回值为Emp> 类型的 ArrayList集合 
		Connection con = null;
		Statement stat = null;
		ResultSet rs = null;
		System.out.println("开始连接程序···");
		try {
//			第1步、 载入JDBC驱动程序 
			Class.forName("oracle.jdbc.driver.OracleDriver");
//			第 2步、定义连接URL
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// jdbc:oracle:thin:@<主机名或IP>:1521:<数据库名>
//			第3步、建立连接
			con = DriverManager.getConnection(url, "scott", "123456");
			System.out.println(con);
//			第4步、创建Statement对象
			stat = con.createStatement();
//			第5步、执行查询或更新
			String sql = "select * from emp";  //查询整个emp表
			rs = stat.executeQuery(sql);  //结果集的数据表
			
//			6.结果处理
			ArrayList<Emp> empList = new ArrayList(); //Emp类型的ArrayList
			while(rs.next()) {  //一行一行地遍历
				Emp emp = new Emp();
				emp.setEmpno(rs.getInt("empno"));  //将一行中的empno赋值给emp对象中的empno属性
				//emp.setEname(rs.getString("ename"));  //将一行中的ename赋值给emp对象中的ename属性,一下类似!
				emp.setJob(rs.getString("job"));  
				emp.setMgr(rs.getInt("mgr"));  
				emp.setHiredate(rs.getDate("hiredate"));
				emp.setSal(rs.getDouble("sal"));
				emp.setComm(rs.getDouble("empno"));  
				emp.setDeptno(rs.getInt("deptno"));  
				empList.add(emp);  //将表里面的每一行数据转化为集合里面的一个对象
			}
			return empList ;  //不出现异常
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
//			7.关闭连接(先打开后关闭)
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(con != null) {
					con.close();
				}			
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(stat != null) {
					stat.close();
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}		
		}
		return null;
	}
}

接下来再写一个测试类,代码如下:

package com.neuedu.chapter05._JDBC;
import java.util.ArrayList;
import com.neuedu.chapter05._JDBCBean.Emp;
public class TestEmp {
	public static void main(String[] args) {
		JDBCPreparedStatement jdbc = new JDBCPreparedStatement();
		//-------------使用集合查询整个表的内容----------------
		JDBCDemo test = new JDBCDemo();
		ArrayList<Emp> empList = test.selectEmp();  //遍历集合,输出表中每一列信息
		for(Emp emp : empList) {
			System.out.println(emp.toString());
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_mo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值