开发者社区> 问答> 正文

MyEclipse连接 mysql 出错? 400 报错

MyEclipse连接 mysql 出错? 400 报错

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JFrame;
import com.sun.org.apache.xerces.internal.impl.dv.DVFactoryException;

class Lianjie{
    public static final String DBurl = "jdbc:mysql//localhost:3306/mldn";
    public static final String Dri = "org.gjt.mm.mysql.Driver";
    public static final String User = "root";
    public static final String Password = "root";
    public Lianjie() throws  SQLException{

  
 
   try {
    Class.forName(Dri);
   } catch (ClassNotFoundException e) {
    System.out.println("出现错误"+e);
   } 

       Connection conn=null;
       Statement state=null;
       conn= DriverManager.getConnection(DBurl, User, Password);
       state=conn.createStatement();
      
       String sql="insert into user(id,name)values(3,3)";
       state.executeUpdate(sql);
       conn.close();
    }
}
public class Connectdemo1 {
   public static void main(String[] args) throws ClassNotFoundException, SQLException {
                 new Lianjie();
    
 }
 }

运行以上代码编译器得到以下提示:

Exception in thread "main" java.sql.SQLException: No suitable driver
 at java.sql.DriverManager.getConnection(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at Shizhanjindian_17.Lianjie.<init>(Connectdemo1.java:27)
 at Shizhanjindian_17.Connectdemo1.main(Connectdemo1.java:37)

第一个提示没有合适的驱动。

去掉以下代码

       Connection conn=null;
       Statement state=null;
       conn= DriverManager.getConnection(DBurl, User, Password);
       state=conn.createStatement();
      
       String sql="insert into user(id,name)values(3,3)";
       state.executeUpdate(sql);
       conn.close();

经测试 编译器得到结果没有任何错误  驱动加载通过。

提示 驱动 报错 求解。。。

并且

at Shizhanjindian_17.Lianjie.<init>(Connectdemo1.java:27)---->

conn= DriverManager.getConnection(DBurl, User, Password);

at Shizhanjindian_17.Connectdemo1.main(Connectdemo1.java:37)----->

            new Lianjie();

看不懂存在的问题。麻烦各位大哥帮忙解释一下。十分感谢


 

展开
收起
爱吃鱼的程序员 2020-06-04 14:31:55 832 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

      public static final String DBurl = "jdbc:mysql(此处少一个冒号)//localhost:3306/mldn";
    ######看到了, 粗心了。谢谢大哥了 、######conn= DriverManager.getConnection(DBurl, User, Password);
           state=conn.createStatement();
           
           String sql="insert into user(id,name)values(3,3)";
           state.executeUpdate(sql);

           conn.close();

    这一坨咋不包在try cache  finally里。。。。。。。。。。。。

    ######

     

       Connection conn=null;
           Statement state=null;

    try {

        Class.forName(Dri);


           conn= DriverManager.getConnection(DBurl, User, Password);
           state=conn.createStatement();
           
           String sql="insert into user(id,name)values(3,3)";
           state.executeUpdate(sql);

       } catch (ClassNotFoundException e) {
        System.out.println("出现错误"+e);
       } 


        finally{

           conn.close();

        xx.close();

    xx.close();

        }

    }

    }


    这样还靠点谱

    ######刚才没看见还有个throws ····######回复 @空清城 : 也行啊,关键是你获得conn时会出异常,你没处理######大哥。我将程序中会出现的异常在主方法抛出不处理不行吗 ?######另外  Dri = "org.gjt.mm.mysql.Driver";这是啥????你写错了######回复 @softsword : 这个写法也是可以的 。######我咋记得是com.mysql.jdbcDriver######这个是没有错的。 这个是驱动的一个什么东西的、######

    问题追加:

    一下代码是可以运行的可以有结果;但是本人看不出不同。

    麻烦看出来的人讲解一下

    import java.sql.Connection ;
    import java.sql.DriverManager ;
    import java.sql.Statement ;
    public class Connectdemo1{
     // 定义MySQL的数据库驱动程序
     public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
     // 定义MySQL数据库的连接地址
     public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
     // MySQL数据库的连接用户名
     public static final String DBUSER = "root" ;
     // MySQL数据库的连接密码
     public static final String DBPASS = "root" ;
     public static void main(String args[]) throws Exception { // 所有的异常抛出
      Connection conn = null ;  // 数据库连接
      Statement stmt = null ;   // 数据库操作
      Class.forName(DBDRIVER) ; // 加载驱动程序
      String sql = "INSERT INTO user(id,name) "+
       " VALUES (3,3)" ;
      conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
      stmt = conn.createStatement() ; // 实例化Statement对象
      stmt.executeUpdate(sql) ;  // 执行数据库更新操作
      stmt.close() ;     // 关闭操作
      conn.close() ;   // 数据库关闭
     }
    };

     

    ######

    下面是对各种数据库的驱动类名和URL格式的汇总。如表3所示。其中hostip代表ip地址,dbname代表数据库名。

    数据库

    驱动类名

    URL格式

    Oracle

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:thin:@hostip:1521:dbname

    Sybase

    com.sybase.jdbc2.jdbc.SybDriver

    jdbc:sybase:Tds:hostip:4100/dbname

    Mysql

    com.mysql.jdbc.Driver

    jdbc:mysql://hostip:3306/dbname?useUnicode=true&characterEncoding=GBK

    SQLServer 2000

    com.microsoft.jdbc.sqlserver.SQLServerDriver

    jdbc:microsoft:sqlserver://hostip:1433;DatabaseName=dbname

    SQLServer 2005

    com.microsoft.sqlserver.jdbc.SQLServerDriver

    jdbc:sqlserver://hostip:1433;DatabaseName=dbname

    SQLServer 7.0

    net.sourceforge.jtds.jdbc.Driver

    jdbc:jtds:sqlserver://hostip:1433/dbname

    DB2

    com.ibm.db2.jcc.DB2Driver

    jdbc:db2://hostip:50000/dbname

    Informix

    com.informix.jdbc.IfxDriver

    jdbc:informix-sqli://hostip:port/dbname:informixserver=<dbservername>

    ######谢谢了。以后不用愁了。
    2020-06-04 16:23:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像