在 JSP 中动态建立 Oracle DB 连接

Posted

技术标签:

【中文标题】在 JSP 中动态建立 Oracle DB 连接【英文标题】:Making Oracle DB connection Dynnamically in JSP 【发布时间】:2012-11-30 18:23:14 【问题描述】:

动态连接数据库jsp

您好,我正在尝试动态连接数据库。 因此,当用户从索引页面单击链接时,它将发送参数“OS” 所以我的测试页面将接收参数 OS,在具有数据库信息列表的文本文件中查找匹配项,例如

XP-jdbc:oracle:thin@xx.xxx.xx.xx:xxxx:XPXP1-XP_user-XP_pass
W7-jdbc:oracle:thin@YY.YYY.YY.YY:YYYY:W7W71-W7_user-W7_pass
MAC-jdbc:oracle:thin@ZZ.ZZZ.ZZ.ZZ:ZZZZ:MACO1-MAC_user-MAC_pass
LINNUX-jdbc:oracle:thin@AA.AAA.A.AA:AAAA:LINN1-LINNUX_user-LINNUX_ph1

我的尝试:

String userName = request.getParameter("OS");
try
    String db = "";
    String[] temp1;
    String dblist = root + "\\" + "dblist.txt";
    BufferedReader dbin = new BufferedReader(new FileReader(dblist));
    while ((db = dbin.readLine()) != null)
        temp1=db.split("-");
        if ((temp1[0].equals(userName)))
             connString = temp1[1].toString();
             connUser = temp1[2].toString();
             connPass = temp1[3].toString();
        
     
     dbin.close();
catch (IOException ex) 
    System.out.println(ex);


try
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    Connection conn = DriverManager.getConnection(connString, connUser, connPass);
    Statement stmt = conn.createStatement();


我的问题是,这不起作用! 我得到 java.sql.SQLException: Invalid Oracle URL specified when I open my web page.... 我做错了什么?

显然我的属性文件已损坏 >.> 这就是为什么我的属性文件只读取了它的一半组件的原因...无论如何感谢您的帮助

【问题讨论】:

如果在 getConnection() 调用之前调试 connString、connUser 和 connPass,它们的值是多少? 他们确实有正确的值 idk 为什么我会收到这个错误 【参考方案1】:

您可以使用 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 代替 DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

另外,您是否检查过 YY.YYY.YY.YY:YYYY 是否被正确的 IP 和端口替换?

【讨论】:

有区别吗?是的,如果我尝试单独连接,IP 和端口是正确的

以上是关于在 JSP 中动态建立 Oracle DB 连接的主要内容,如果未能解决你的问题,请参考以下文章

JSP访问数据库(网上书店项目---创建数据库和JDBC连接数据库测试)

JSP 技术简述

在jsp编程中如何连接数据库

JSP基础

Oracle表刚插入大量数据,索引会立即起作用吗?

代理没有 ssh 的 oracle 连接?