Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有jdbc和其他框架的情况下连接到java中的数据库?_Java_Jdbc - Fatal编程技术网

如何在没有jdbc和其他框架的情况下连接到java中的数据库?

如何在没有jdbc和其他框架的情况下连接到java中的数据库?,java,jdbc,Java,Jdbc,除了建立jdbc连接或使用内部使用jdbc的框架之外,还有其他方法连接到数据库。您可以使用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 vo

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

您可以使用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);
  }
}

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

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

您必须编写自己的客户机,以便在服务器端与供应商的侦听器进行对话

这是可以做到的,但我怀疑你或我能否胜任


最大的问题是:为什么?

为什么要这样做?为什么不使用JDBC连接?你的困难是什么?这取决于数据库。大多数数据库服务器通常通过socket直接通信上面链接中的所有JDBC备选方案都是基于JDBC构建的,因此您仍然在使用它。在64位JVM中不可用。这仍然是JDBC。但我们没有使用任何第三方驱动程序……是的,你只是不知道而已。您正在使用Oracle/Sun编写的桥接驱动程序。他们是第三方。它仍然是JDBC。看到驱动程序和连接URL中的前四个字母了吗?是的,但代码不是这么说的。他们同意我的建议:从头开始编写自己的客户机,完全理解协议。你在说明我的观点。