JDBC笔记

来源:互联网 发布:win7旗舰版服务优化 编辑:程序博客网 时间:2024/06/05 05:38

什么是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");}



原创粉丝点击