• [转]Java连接oracle数据库实例


    http://www.cnblogs.com/yanpeng/archive/2009/01/17/1943367.html

    建立和分析java程序和oracle数据库交互的两种方法。 

      第一种应该是比较古老的方法了。 

      Windows下采用JDBC-ODBC Bridge连接oracle数据库 

      1、 安装oracle客户端程序,在tnsnames.ora中配置好相应的数据库连接串文件,此处设连接串名为“dbora”。 

      2、 在windows的控制面板->“数据库源ODBC”中,建立相应的用户或者系统DSN,具体方法:在安装的数据源的驱动程序选择“Microsoft ODBC for Oracle”。 

      点击“完成”,在弹出的对话框中,填入如下信息: 

      数据源名称:dbjdbc 
      描述:jdbc数据源 
      用户名称:manager -此为数据库用户名 
      服务器:dbora -此即为连接串名 
      其中“dbjdbc”是在java程序中要引用的名字,至此数据源dbjdbc已建立。 

      3、 建立如下的java程序

    // 使用本地的jdbc连接串,查询oracle数据库表 
    import java.sql.*; 
    public class lookup { 
    public static void main(String[] args) 
    throws SQLException, ClassNotFoundException { 
    //定义了数据库连接串 
    String dbUrl = "jdbc:odbc:dbjdbc"; 
    //数据库的用户名 
    String user = "manager"; 
    //数据库的用户口令 
    String password = "ora912"; 
    // 加载jdbc-odbc bridge驱动程序 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    // 与url指定的数据源建立连接 
    Connection c = DriverManager.getConnection(dbUrl, user, password); 
    //采用Statement进行查询 
    Statement s = c.createStatement(); 
    ResultSet r = s.executeQuery("SELECT empno,name from emp"); 
    while(r.next()) { 
    // 打印字段信息 
    System.out.println(r.getString("empno") + ", 
    " + r.getString("name ") ); 
    } 
    // 关闭Statement,其上的ResultSet也将关闭 
    s.close(); 
    } 
    } 



      在jdbc中查询的语句有3类:Statement、PreparedStatement、CallableStatement。 

    jdbc的thin方式 

      此种方法不需要安装Oracle的客户端,也不需要配置odbc,故此种方法用得比较普遍。 

      此方法在使用时需要将oracle的jar包加到classpath变量中,此包可以在oralce客户端程序的$ORACLE_HOME/jdbc/lib/classes12.jar找到。 

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    
    public class jdbcthin {
        //dbUrl数据库连接串信息,其中“1521”为端口,“ora9”为sid 
        String dbUrl = "jdbc:oracle:thin:@192.168.20.161:1521:orcl"; 
        //theUser为数据库用户名 
        String theUser = "p_uni_act"; 
        //thePw为数据库密码 
        String thePw = "puniact"; 
        //几个数据库变量 
        Connection c = null; 
        Statement conn; 
        ResultSet rs = null; 
        //初始化连接 
        public jdbcthin() { 
            try { 
                Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
                //与url指定的数据源建立连接 
                c = DriverManager.getConnection(dbUrl, theUser, thePw); 
                //采用Statement进行查询 
                conn = c.createStatement(); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
        //执行查询 
        public ResultSet executeQuery(String sql) { 
            rs = null; 
            try { 
                rs = conn.executeQuery(sql); 
            } 
            catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            return rs; 
        
        } 
        
        public void close() { 
            try { 
                conn.close(); 
                c.close(); 
            } 
            catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
            
        public static void main(String[] args) { 
            ResultSet newrs; 
            jdbcthin newjdbc = new jdbcthin(); 
            newrs = newjdbc.executeQuery("select * from eventtype"); 
            try { 
                while (newrs.next()) { 
                    System.out.print(newrs.getString("event_type")); 
                    System.out.println(":"+newrs.getString("content")); 
            } 
            } 
            catch (Exception e) { 
                e.printStackTrace(); 
            } 
            newjdbc.close(); 
        } 
    }
  • 相关阅读:
    Intellij IDEA 使用Spring-boot-devTools
    Intellij IDEA 使用Spring-boot-devTools
    Swift-Realm数据库的使用详解
    Maven快速上手
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    2019数据技术嘉年华主会场,数据英雄荟萃一堂共论道
    在 AWTK 中 如何让文本滚动起来
    数据库高可用架构了解一下
    session和token的区别
  • 原文地址:https://www.cnblogs.com/lihaozy/p/2942285.html
Copyright © 2020-2023  润新知