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

来源:互联网 发布:气弹枪 淘宝 暗语 编辑:程序博客网 时间:2024/06/10 12:00
第一种应该是比较古老的方法了。 
  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”为sidString 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();}}




0 0
原创粉丝点击