zoukankan      html  css  js  c++  java
  • JAVA JDBC

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.

    JDBC API中驱动程序管理器由DriverManager类来实现。它提供了一个用于获得数据库连接的getConnection方法,因此,当加载完驱动程序后,就可以通过该方法来获得数据库连接。在调用getConnection方法时,要向方法传入数据库的URL参数, DriverManager类将根据这个参数值来选择相应的驱动程序,并向用户返回数据库连接
    数据库连接是由Connection接口表示的,它提供生成数据库语句的方法。在JDBC中,能够访问数据库的语句共有三类,即:Statement语句、PreparedStatement语句、CallableStatement语句。

    JDBC数据库访问语句中嵌入SQL语句,然后调用相应的execute方法就可以执行这些SQL语句了
    如果是SQL查询语句,查询结果将存储到ResultSet对象中。通常称ResultSet为结果集
    Connection接口分别为生成三种不同的数据库语句声明了相应的方法:
    createStatement方法
    prepareStatement方法
    prepareCall方法

    使用JDBC访问数据库

    向DriverManager类注册数据库驱动程序,可以注册一个,也可以注册多个。注册的一般方法是调用Class. forName方法,也可以通过设置jdbc.drivers的系统属性来实现注册
    调用DriverManager. getConnection方法,取得代表数据库连接的Connection对象
    使用Connection对象生成数据库语句。可以是下面三者之一:
    Statement语句
    PreparedStatement语句
    CallableStatement语句
    在数据库语句中嵌入SQL语句,完成对数据库的查询、更新、插入和删除操作
    关闭数据库语句,关闭数据库连接

    实例:

    Class.forName("oracle.jdbc.driver.OracleDriver");//加载Oracle数据库驱动
    //连接数据库
    String url="jdbc:oracle:thin:@127.0.0.1:1521:XE";
    String user="hr";
    String password="123";
    String sql;
    Connection con=DriverManager.getConnection(url,user,password);
    //数据库查询
    //方法1
    Statement stm=con.createStatement();
    sql="select * from employees";
    ResultSet rs=stm.executeQuery(sql);

    while (rs.next()){
        System.out.println(rs.getString(2)+"	"+rs.getInt("salary"));
    }
    rs.close();
    stm.close();
    //方法2
    String sql1="select * from employees where salary>? and department_id=?";
    PreparedStatement pstm=con.prepareStatement(sql1);
    pstm.setInt(1,10000);
    pstm.setInt(2,80);
    ResultSet rs1=pstm.executeQuery();
    while (rs1.next()){
    System.out.println(rs1.getString(2)+" "+rs1.getInt("salary"));
    }
    //方法3调用存储过程
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    String sql2="{call getAvgSalary_ByDepartmentName(?,?)}";
    CallableStatement csmt=con.prepareCall(sql2);
    double avg;
    csmt.setString(1,"Sales");
    csmt.registerOutParameter(2, OracleType.STYLE_DOUBLE);
    csmt.execute();
    System.out.println("!!!!!!!!!");
    avg=csmt.getDouble(2);
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    System.out.println("平均工资:"+avg);
    rs1.close();
    pstm.close();
    con.close();
    
    
     
  • 相关阅读:
    Java发生的重大事件
    Java的特点
    JVM的整体结构
    JVM生态圈
    简历不造假,根本就找不到工作?如果你这样想就OUT了
    C语言必背18个经典程序,你记住了吗
    黑客入侵的常用手段,你真的要做好防护了
    从零开始自学Linux,一篇文章带你快速找准学习方向
    还在担心学Linux懵圈吗?掌握这份Linux思维导图,你就能成为高手
    为何计算机专业大一期间先选择学习C语言,而不是其他语言呢?
  • 原文地址:https://www.cnblogs.com/feipengting/p/7570955.html
Copyright © 2011-2022 走看看