当我想使用JdbcOdbc Bridge驱动程序将数据插入mysql时,我没有得到数据库选择错误,

时间:2016-09-30 04:25:48

标签: mysql jdbc sqlexception jdbc-odbc

我已经正确创建了dsn并且具有清晰简单的代码,但我最终得到了这个错误。表结构与程序

相同
   import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    public class Insert {
        public static void main(String[] args) {
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbc");
                Connection con=DriverManager.getConnection("jdbc:odbc:mysqldsn","root","filimon");
                Statement st=con.createStatement();
                int i=st.executeUpdate("insert into emp values(3,'cat')");
                if (i>=1) {
                    System.out.println("inserted successfully");
                } else {
                    System.out.println("failed");
                }
                st.close();
                con.close();
            } catch (Exception e) {
                System.err.println(e);
            }
        }
    }

我得到java.sql.SQLException:[MySQL] [ODBC 5.3(a)驱动程序] [mysqld-5.7.13-log]没有选择数据库

2 个答案:

答案 0 :(得分:0)

错误表示您尚未选择数据库。但是,在ODBC配置中,数据库的选择将会在某处。

所以你可以做两件事:要么修复你的ODBC配置来选择数据库,要么(更好的选择)你可以停止使用ODBC并使用MySQL JDBC驱动程序。

答案 1 :(得分:0)

使用以下驱动程序

Class.forName("com.mysql.jdbc.Driver");  
Connection con=DriverManager.getConnection(  
"jdbc:mysql://localhost:3306/dbname","uname","passwd"); 

如果您仍然使用ODBC,请向我显示您的DSN配置。