【问题标题】:How to connect to database in java without jdbc and other frameworks? [closed]如何在没有 jdbc 和其他框架的情况下连接到 java 中的数据库? [关闭]
【发布时间】:2013-04-05 10:38:33
【问题描述】:

除了建立 jdbc 连接或使用内部使用 jdbc 的框架之外,还有其他方法可以连接到数据库吗?

【问题讨论】:

  • 你为什么要这样做?
  • 为什么不用JDBC连接?你的困难是什么?
  • 这取决于数据库。大多数数据库服务器通常通过套接字直接通信
  • 以上链接中的所有 JDBC 替代方案都是基于 JDBC 构建的,因此您仍在使用它。

标签: java jdbc


【解决方案1】:

当然,这是可能的。但不太可能。

您必须完全了解数据库供应商所期望的协议。

您必须编写自己的客户端才能在服务器端与供应商的侦听器进行对话。

可以做到,但我怀疑你或我是否能做到。

最大的问题是:为什么?

【讨论】:

    【解决方案2】:

    您可以使用 JDBC ODBC 桥...虽然不推荐..

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    
    public class Main {
      public static void main(String[] args) throws Exception {
        Connection conn = getConnection();
        Statement st = conn.createStatement();
        // st.executeUpdate("drop table survey;");
        st.executeUpdate("create table survey (id int,name varchar(30));");
        st.executeUpdate("insert into survey (id,name ) values (1,'nameValue')");
    
        st = conn.createStatement();
        ResultSet rs = st.executeQuery("SELECT * FROM survey");
    
        ResultSetMetaData rsMetaData = rs.getMetaData();
    
        int numberOfColumns = rsMetaData.getColumnCount();
        System.out.println("resultSet MetaData column Count=" + numberOfColumns);
    
        st.close();
        conn.close();
      }
    
      private static Connection getConnection() throws Exception {
        String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String url = "jdbc:odbc:northwind";
        String username = "";
        String password = "";
        Class.forName(driver);
        return DriverManager.getConnection(url, username, password);
      }
    }
    

    【讨论】:

    • 在 64 位 JVM 中不可用。这仍然是 JDBC。
    • 但是我们没有使用任何第三方驱动......
    • 是的,你只是不知道而已。您正在使用 Oracle/Sun 编写的桥接驱动程序。他们是第三方。它仍然是 JDBC。看到驱动程序和连接 URL 中的前四个字母了吗?
    • 对,但这不是您的代码所说的。他们同意我的建议:从头开始编写自己的客户端,完全理解协议。你在说明我的意思。
    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 2016-07-13
    • 2016-11-23
    相关资源
    最近更新 更多