如何用mysql实现ODBC(JDBC桥)连接数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用mysql实现ODBC(JDBC桥)连接数据库?相关的知识,希望对你有一定的参考价值。

我想在eclipse下面用ODBC(JDBC桥)连接mysql数据库,我在ODBC里面配制数据源的时候,在里面没有找mysql对应的数据驱动程序,是不是还需要添加?

如果要添加该怎么样添加呢?

mysql可以象sqlserver这样实现ODBC吗?

步骤(1):加载要使用的数据库驱动程序类,该工作由Class类的静态方法forName完成,他加载向相应的驱动程序类,并创建该类的一个实例。加载JDBC-ODBC桥驱动类采用如下语句:
Class.forName("classname");
(2):声明一个Connection接口的对象。如:
Connection conn;
(3)并使用driverManager类的静态方法getConnection建立数据库连接,该方法主要有两种重载形式:
Connection getConnection(String url);
Connection getConnection(String url,String user,String password)

例子:
import java.sql.Connection;
import java.sql.DriverManager;

public class Conn

// 非链接池
public static Connection getConn()
// 建立连接对象
Connection conn = null;
// 说明JDBC驱动类所在位置的字符串,与驱动所在目录对应。
String driver = "com.mysql.jdbc.Driver";
// MySQL的JDBC URL 字符串
// 连接到本地主机,端口为3306,数据库为mysql,
String sourse = "jdbc:mysql://127.0.0.1:3306/dq?characterEncoding=utf-8";
try
// 初始化MySQL的JDBC桥驱动类
Class.forName(driver);
// 使用DriverManager类的getConnection方法建立连接。url=sourse,用户名为root,密码为空。

conn = DriverManager.getConnection(sourse, "root", "");
catch (Exception e)
System.out.println(e.toString());

// 返回连接对象
return conn;


public static void main(String[] args)
System.out.println(Conn.getConn());



// import java.sql.*;
//
// public class mysqlDEMO
// public static void main(String []args)throws Exception
// //说明JDBC驱动类所在位置的字符串,与驱动所在目录对应
// String mysqldriver="org.mm.mysql.Driver";
// //MySQL的JDBC URL字符串
// //连接到本地主机,端口为3306,数据库为mysql,用户名为root,密码为空。
// String url="jdbc:mysql://localhost:3306/mysql?user=root;password=";
// //建立连接对象
// Connection conn;
// //初始化MyJDBC的JDBC桥驱动类
// Class.forName(mysqldriver);
// //使用DriverManager类的getConnection方法建立连接
// conn=DriverManager.getConnection(url,"","");
//
// 驱动需要加载
参考技术A 不清楚

我一般都是用驱动

通过 JDBC 的 Java mySQL 远程连接:ODBC 桥

【中文标题】通过 JDBC 的 Java mySQL 远程连接:ODBC 桥【英文标题】:Java mySQL remote connection through JDBC: ODBC bridge 【发布时间】:2010-06-25 17:40:23 【问题描述】:

我在远程连接到 Java 中的 mySQL 数据库时遇到问题。这是我的错误信息:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

我确定我使用的 ip 地址和端口可以正常工作,因为我正在为 mySQL 客户端程序使用相同的 ip 和端口。

我的托管公司不支持 JDBC,所以我使用的是 JDBC-ODBC 桥。

这是我的课:

public class SQLdataBase 

private Connection con;
private Statement st;
private static final String url="jdbc:odbc://xxx.xxx.xxx.xxx:3306";
private static final String className="sun.jdbc.odbc.JdbcOdbcDriver";

    private static  String user;
private static  String pass;

 SQLdataBase(String userName, String password) 
           user=userName;
        pass=password;
    try 
            Class.forName(className);
 con = DriverManager.getConnection(url, user, pass);
 System.out.println("success");
            st = con.createStatement();
         catch (Exception ex) 
            System.out.println(ex);
        
  //do whatever database processing is required
 

    public void queryNoReturn(String query) throws SQLException
        st.executeQuery(query);
    

 

错误发生在这一行: con = DriverManager.getConnection(url, user, pass);

我做错了什么?

【问题讨论】:

你应该联系你的托管公司的支持 【参考方案1】:
String url="jdbc:odbc://xxx.xxx.xxx.xxx:3306";

在 ODBC 中,您通常使用数据源名称 (DSN) 而不是 URL 中的主机名:端口。如果这在托管文档中不清楚和/或无法直接显示,那么您需要联系他们以获取确切的 DSN。一旦知道,然后使用以下 URL:

 String url="jdbc:odbc:dataSourceName";

【讨论】:

以上是关于如何用mysql实现ODBC(JDBC桥)连接数据库?的主要内容,如果未能解决你的问题,请参考以下文章

使用JDBC

如何用javaBean连接数据库

Java数据库连接——jdbc-odbc桥连接方式

各类数据库的jdbc驱动及连接字符串总结

自学orcalejdbc-odbc桥连接

20.2 JDBC概述