开发者社区> 问答> 正文

MyEclipse连接 mysql 出错?报错

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-22 18:14:31 902 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
     publicstaticfinalStringDBurl="jdbc:mysql(此处少一个冒号)//localhost:3306/mldn";
    看到了,粗心了。谢谢大哥了、 conn=DriverManager.getConnection(DBurl,User,Password);
          state=conn.createStatement();
           
          Stringsql="insertintouser(id,name)values(3,3)";
          state.executeUpdate(sql);

          conn.close();

    这一坨咋不包在trycache finally里。。。。。。。。。。。。

     

      Connectionconn=null;
        Statementstate=null;

    try{

      Class.forName(Dri);


        conn=DriverManager.getConnection(DBurl,User,Password);
        state=conn.createStatement();
        
        Stringsql="insertintouser(id,name)values(3,3)";
        state.executeUpdate(sql);

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


      finally{

        conn.close();

      xx.close();

    xx.close();

      }

    }

    }


    这样还靠点谱

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

    问题追加:

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

    麻烦看出来的人讲解一下

    importjava.sql.Connection;
    importjava.sql.DriverManager;
    importjava.sql.Statement;
    publicclassConnectdemo1{
     //定义MySQL的数据库驱动程序
     publicstaticfinalStringDBDRIVER="org.gjt.mm.mysql.Driver";
     //定义MySQL数据库的连接地址
     publicstaticfinalStringDBURL="jdbc:mysql://localhost:3306/mldn";
     //MySQL数据库的连接用户名
     publicstaticfinalStringDBUSER="root";
     //MySQL数据库的连接密码
     publicstaticfinalStringDBPASS="root";
     publicstaticvoidmain(Stringargs[])throwsException{ //所有的异常抛出
      Connectionconn=null;  //数据库连接
      Statementstmt=null;   //数据库操作
      Class.forName(DBDRIVER); //加载驱动程序
      Stringsql="INSERTINTOuser(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

    SQLServer2000

    com.microsoft.jdbc.sqlserver.SQLServerDriver

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

    SQLServer2005

    com.microsoft.sqlserver.jdbc.SQLServerDriver

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

    SQLServer7.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-22 18:14:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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

相关镜像