Java jdbc操作oracle数据库的两种方式

淺唱寂寞╮ 提交于 2020-03-08 18:15:15

     本文由广州疯狂软件java培训分享:

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

  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/ojdbc6.jar找到(本人用的是11g)。

  import java.sql.*;

  public class jdbcthin {

  //dbUrl数据库连接串信息,其中“1521”为端口,本机用localhost,“orcl”为sid

  String dbUrl = "jdbc:oracle:thin:@10.10.20.15:1521:orcl";

  //theUser为数据库用户名

  String theUser = "sman";

  //thePw为数据库密码

  String thePw = "sman";

  //几个数据库变量

  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 EMP");

  try {

  while (newrs.next()) {

  System.out.print(newrs.getInt(1)+"\t"+newrs.getString(2)); //打印EMP表的第一列和第二列数据

  }

  } catch (Exception e) {

  e.printStackTrace();

  }

  newjdbc.close();

  }

  }

  疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!