zoukankan      html  css  js  c++  java
  • 二十三、java连接oracle数据库操作:jdbc

    1、jdbc

    1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity
    2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实现原理是不同的,所以我们所编写的程序应该是面向一套规范去编写的,这套java语言连接数据库的规范就是jdbc
     A、sun公司:
     jdbc接口是一套由Sun公司制定的一套Class文件规范,用于规范程序员;
     B、数据库厂商:
     编写jdbc接口的实现类,并将这些实现类打成jar包,并发布;这些jar包被称为连接数据库的驱动。
     C、编程的程序员:
     从各类型的数据库官网上面下载jar包,并配置到环境变量Classpath中。若果没有把class文件配置到环境变量classPath,那么代表你只有接口和调用数据,而没有接口的实现类,没有实现类程序是无法运行的。
    3) oracle10gi下JDBC驱动包介绍:
    Oracle 数据库 10g 第 2 版 (10.2.0.1.0) JDBC 驱动程序针对所有平台的 JDBC 瘦客户端
    classes12.jar      用于 JDK 1.2 和 JDK 1.3
    classes12_g.jar    与 classes12.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息
    classes12dms.jar   与 classes12.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
    classes12dms_g.jar   与 classes12dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。

    ojdbc14.jar     用于 JDK 1.4 和 1.5 的类
    ojdbc14_g.jar     与 ojdbc14.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
    ojdbc14dms.jar    与 ojdbc14.jar 一样,除了另外包含支持 Oracle 动态监视服务的代码。
    ojdbc14dms_g.jar  与 ojdbc14dms.jar 一样,除了类通过“javac -g”编译并包含一些跟踪信息。
    orai18n.jar       用于 JDK 1.2、1.3、1.4 和 1.5 的 NLS 类。该 jar 文件代替旧的 nls_charset jar/zip 文件。
    ons.jar         供纯 Java 客户端 Oracle 通知服务 (ONS) 后台程序使用。
    demo.tar 或 demo.zip 包含 JDBC 示例程序

    |示例:java连接数据库进行查询操作|

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class JDBCTest01 {
     public static void main(String[] args) {
      Connection con=null;
      PreparedStatement prs=null;
      ResultSet rs=null;
      try {
       //步骤1、加载oracle驱动程序
       Class.forName("oracle.jdbc.OracleDriver");
       String url="jdbc:oracle:thin:@10.125.4.55:1521:orcl";
       String user="zhangjunbo";
       String password="zjb123";
       String sql="select * from student where xuehao='2'";
       try {
       //步骤2、获取连接 
       con=DriverManager.getConnection(url, user, password);
       System.out.println(con);
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
       try {
       //步骤3、实例化预编译语句
        prs=con.prepareStatement(sql);
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
       //步骤4、执行查询
       try {
        rs=prs.executeQuery(sql);
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
       
       
      } catch (ClassNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      try {
       //步骤5、处理查询结果集
       while(rs.next()){
        System.out.println("姓名:"+rs.getString("xingming")+"
    "+"生日:"+rs.getString("birthday"));
       }
      } catch (SQLException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }finally{
       //逐一将上面的几个对象关闭,不关闭的话会影响性能、并且占用资源
       //注意关闭的顺序,最后使用的最先关闭
       try {
        rs.close();
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
       try {
        prs.close();
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
       try {
        con.close();
       } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      }
     }
    }
    View Code

    |示例:通过配置文件连接数据库进行增删改查|

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.Properties;
    
    public class JDBCTest02 {
     public static void main(String[] args) throws ClassNotFoundException, SQLException {
      //创建输入流
      FileReader fReader=null;
      try {
       fReader=new FileReader("src/JDBC/db.properties");
      } catch (FileNotFoundException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      //创建map集合对象
      Properties properties=new Properties();
      //加载(将输入流中的资源加载到属性类对象中) 
      try {
       properties.load(fReader);
      } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      String driver=properties.getProperty("driver");
      String url=properties.getProperty("url");
      String username=properties.getProperty("username");
      String password=properties.getProperty("password");
      Class.forName(driver);
      Connection connection=DriverManager.getConnection(url, username, password);
      //对student表进行修改操作
      String sql="update student set xingming=? where xuehao=?";
      PreparedStatement pre=connection.prepareStatement(sql);
      pre.setString(1,"纷纷");
      pre.setString(2, "3");
      String sqlInsert="insert into student values(20,'寂静','男','','12000',3,20,21)";
      PreparedStatement pre2=connection.prepareStatement(sqlInsert);
      int insertInt=pre2.executeUpdate();
      int updateInt=pre.executeUpdate();
      System.out.println(updateInt+insertInt);
      pre.close();
      connection.close();
     }
    }
    View Code
    细水长流,打磨濡染,渐趋极致,才是一个人最好的状态。
  • 相关阅读:
    NOIP 2017 游记?
    bzoj4596 [Shoi2016]黑暗前的幻想乡
    bzoj2467 [中山市选2010]生成树
    bzoj3534 [Sdoi2014]重建
    bzoj1016 [JSOI2008]最小生成树计数
    bzoj4044 [Cerc2014] Virus synthesis
    bzoj4530 [Bjoi2014]大融合
    bzoj2594 [Wc2006]水管局长数据加强版
    bzoj 2342 [Shoi2011]双倍回文
    bzoj [HNOI2008]Cards
  • 原文地址:https://www.cnblogs.com/jiarui-zjb/p/6250135.html
Copyright © 2011-2022 走看看