java用odbc连接orcale(配置odbc,连接代码)

来源:互联网 发布:数组与集合的区别 编辑:程序博客网 时间:2024/06/07 03:28

 

第一行填:数据库实例
第三行选择对应监听
第四行填:用户名


 

如果是64位的win7系统,找不到,win7 64位系统设置odbc源找不到其他驱动的解决办法

找到C:\Windows\SysWOW64下的odbcab32.exe运行即可。

实例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test {
 public static void main(String[] args) throws SQLException, ClassNotFoundException {
  Connection con;
    ResultSet  rs;
     String sql;
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//驱动源
      con=DriverManager.getConnection("jdbc:odbc:orcl","system","HE123456");//数据库对象
/*

ResultSet.TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。

ResultSet.CONCUR_UPDATABLE 该常量指示可以更新的 ResultSet 对象的并发模式。

默认的是不可以上下滚动的,也就是空白();
所以要实现上下滚动必须添加条件
*/
//实现不传参数的查询///////////////////////////
    Statement  stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//语句对象
     sql="select * from test";//sql语句
     rs = stmt.executeQuery(sql);//查询结果集对象
//////////////////////////////////////
//实现不传参数的更新///////////////////////////
    Statement  stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//语句对象
     sql="update test set a=7 where b=3";//sql语句
     stmt.executeUpdate(sql);//--》无返回查询结果集对象(无rs)
con.commit();//提交修改
con.close();//关闭连接
//////////////////////////////////////

//实现带参数查询//////////////////////////
sql="select * from test where a=?";
     PreparedStatement ps = con.prepareStatement(sql);   //可传参的语句对象
     ps.setInt(1,1);
     rs=ps.executeQuery();//特别注意括号内不用写sql
/////////////////////////////////////////////////////////////
//实现带参数更新//////////////////////////
sql="update  test set b=7 where a=?";
     PreparedStatement ps = con.prepareStatement(sql);   //可传参的语句对象
     ps.setInt(1,1); //方法-setInt(【?对于的序号】,【传 的参数】)
     ps.executeUpdate()//--》无返回查询结果集对象(无rs)特别注意括号内不用写sql
con.commit();//提交修改
con.close();//关闭连接
/////////////////////////////////////////////////////////////

///////////////////测试////////////////////////////////
//表头
     System.out.print("a     ");
     System.out.print("b     ");
     System.out.println("c     ");
  rs.next();//移到下一行
  rs.next();
  rs.next();
     System.out.print(rs.getString(1)+"    ");//rs.getString(表中序号从左到右或者属性名)
     System.out.print(rs.getString(2)+"    ");
     System.out.println(rs.getString(3)+"    ");
   
rs.previous() ;   //现在行的上一行,eg:现在3的话,rs.previous后输出是2行
    System.out.print(rs.getInt(1)+"    ");
 System.out.print(rs.getInt(2)+"    ");
 System.out.println(rs.getInt(3)+"    ");
 }
}
//exec送uteUpdate()方法可以发一条DDL语句(如create table 语句)。
/*如果数据库打开时报错,tns监听程序没有打开*/
找到该路径:

找到该服务管理service.msc:

打开找到该服务:

 

设置为自动启动,并启动它。

0 0
原创粉丝点击