我改的一个基于struts 2的信息管理系统在连接oracle数据库时出现问题,系统原来用的是SQLserver数据库。我修改了一些链接数据库的类。原来链接SQLserver的链接代码和我改的链接代码都贴上,希望高手能帮助解决。
报错:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ConnectionDatabase { // 加载驱动 private final String DBDRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; // 连接数据库的路径 private final String DBURL = "jdbc:microsoft:sqlserver://localhost:1433;databasename=hospitaldb"; // 连接数据库的用户名 private final String DBUSER = "sa"; // 连接数据库的密码 private final String DBPASSWORD = "sa"; // 连接数据库的对象 public Connection conn = null; private PreparedStatement ps = null; private ResultSet rs = null; public ConnectionDatabase() { try { Class.forName(DBDRIVER); this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD); } catch (Exception e) { e.printStackTrace(); System.out.println("数据库连接失败" + this.conn + DBURL + DBUSER + DBPASSWORD); } } // 取得数据库连接 public Connection getConnection() { return this.conn; } // 关闭数数据库连接 public void close() { try { this.conn.close(); } catch (Exception e) { } } // 实现查询 public ResultSet select(String sql) { try { ps = getConnection().prepareStatement(sql); rs = ps.executeQuery(); return rs; } catch (SQLException se) { se.printStackTrace(); return null; } } // 实现增删改 public boolean noselect(String sql) { try { ps = getConnection().prepareStatement(sql); int i = 0; i = ps.executeUpdate(); return i >= 1; } catch (SQLException se) { se.printStackTrace(); return false; } finally { } } // 将于数据库相连的各个对象顺序关闭 public void closeAll(ResultSet r, Statement s, Connection c) { try { if (r != null) r.close(); if (s != null) s.close(); if (s != null) s.close(); if (c != null) c.close(); } catch (SQLException e) { e.printStackTrace(); } } }
import java.sql.*; public class ConnectionDatabase { //dbUrl数据库连接串信息,其中“1521”为端口,“ora9”为sid String dbUrl = "jdbc:oracle:thin:@211.87.20.15:1521:ora9"; //theUser为数据库用户名 String theUser = "admin"; //thePw为数据库密码 String thePw = "1234"; //几个数据库变量 Connection conn = null; Statement ps; ResultSet rs = null; //初始化连接 public ConnectionDatabase() { try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //与url指定的数据源建立连接 conn = DriverManager.getConnection(dbUrl, theUser, thePw); //采用Statement进行查询 ps = conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } } //执行查询 public ResultSet executeQuery(String sql) { rs = null; try { rs = ps.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs; } public void close() { try { ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { ResultSet newrs; ConnectionDatabase newjdbc = new ConnectionDatabase(); 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(); } }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是不是没有添加SQLserver的驱动包回复<aclass='referer'target='_blank'>@evang:第二个程序哪个地方调用了SQLserver,求指点。回复<aclass='referer'target='_blank'>@李香进:看看程序那里还调用了SQLServer连接我是想改成链接Oracle数据库,oracle的class12.jar我已经加入到classpath。根据报错信息,应该还是用的SQLServer驱动,查看一下是不是还有哪里没有修改过来可能程序还有其他地方连接SQLServer,你在工程中搜索一下SQLServer我用的是oracle的thin连接方式,class12.jar我已经加入classpath,不知道还要改哪个地方.