如何使用java连接mysql数据库?

时间:2015-08-26 14:08:42

标签: java mysql

我正在尝试连接到mysql数据库但由于错误仍未完成,我的代码如下:

public static void main(String[] args) {
    try{
        String url = "jdbc.mysql://localhost:3306/db";

        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(url,"root","root");
        Statement stmt = conn.createStatement();
        String query = "insert into student values(1,abs)";
        stmt.executeQuery(query);
        System.out.println("Success...");
        conn.close();

    }catch(Exception e){
        e.printStackTrace();
    }

错误如下:

  

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver       at java.net.URLClassLoader.findClass(Unknown Source)       at java.lang.ClassLoader.loadClass(Unknown Source)       at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)       at java.lang.ClassLoader.loadClass(Unknown Source)       at java.lang.Class.forName0(Native Method)       at java.lang.Class.forName(Unknown Source)       在Java_Database.main(Java_Database.java:11)​​

所以任何人都应该知道,请帮助我。

2 个答案:

答案 0 :(得分:2)

1:下载您引用的msi http://dev.mysql.com/downloads/connector/j/

2:跑吧。运行后,安装应用程序消失,而不是安装例程成功的路线图

  1. 来自c:\我的问题:dir mysql-connector-java-5.1.36-bin.jar /s
  2. 我让它全程运行以确认我没有安装在其他地方

    C:\>dir mysql-connector-java-5.1.36-bin.jar /s
    
     Directory of C:\Program Files (x86)\MySQL\MySQL Connector J
    
    06/19/2015  09:26 PM           972,009 mysql-connector-java-5.1.36-bin.jar
                   1 File(s)        972,009 bytes
    
         Total Files Listed:
                   1 File(s)        972,009 bytes
    

    似乎与我在使用之前遇到的5.1.35文件大小一致

    顺便说一句,上面的MySql Connect J文件夹日期刚刚创建,所以我确信这是来自安装

    1. 我将其复制(不移动)到我的c:\javadeps文件夹。

    2. 我有一个名为so_gibberish的数据库,以及一个名为thingws的表格,其中包含3行

    3. 源代码(myTest.java): 我从互联网上挖走了这个存根,因为我主要是一个scala / jvm程序员。所以请原谅。但它确实有效。

      import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger;

      public class myTest {

      public static void main(String[] args) {
      
          Connection con = null;
          Statement st = null;
          ResultSet rs = null;
      
          String url = "jdbc:mysql://localhost:3306/so_gibberish"; // **** MODIFY db name @ end
          String user = "stan"; // **** MODIFY
          String password = "stan_password"; // **** MODIFY
      
          try {
              con = DriverManager.getConnection(url, user, password);
              st = con.createStatement();
              System.out.println("------------------------------");
              rs = st.executeQuery("select version()");
      
              if (rs.next()) {
                  System.out.println(rs.getString(1));
                  System.out.println("------------------------------");
             }
              rs = st.executeQuery("select id,myCode from thingws");
              while (rs.next()) {
                  System.out.println(rs.getInt(1)+": "+rs.getString(2));
              }
              System.out.println("------------------------------");    
      
          } catch (SQLException ex) {
              Logger lgr = Logger.getLogger(myTest.class.getName());
              lgr.log(Level.SEVERE, ex.getMessage(), ex);
      
          } finally {
              try {
                  if (rs != null) {
                      rs.close();
                  }
                  if (st != null) {
                      st.close();
                  }
                  if (con != null) {
                      con.close();
                  }
      
              } catch (SQLException ex) {
                  Logger lgr = Logger.getLogger(myTest.class.getName());
                  lgr.log(Level.WARNING, ex.getMessage(), ex);
              }
          }
      }
      

      }

    4. 我会将其保存在C:\dev\java8\quick_java_mysql_test

      1. 编译并运行(当你运行它时,它会查询mysql版本,然后查询该表获得3行)
      2. c:\dev\java8\quick_java_mysql_test>javac myTest.java

        c:\dev\java8\quick_java_mysql_test>java -cp .;c:\javadeps\mysql-connector-java-5.1.36-bin.jar myTest

        输出是:

        ------------------------------
        5.6.24-log
        ------------------------------
        1: C938CA
        2: XYZ123
        3: XYZPDQ
        ------------------------------
        

        在项目级别为jars提供依赖项文件夹是很常见的,例如项目文件夹下的dep目录。

        虽然我有相同的jar文件,但它没有被引用,如步骤7中的-cp指令所示

        选择c:\javadeps

        中的jar

        根据您的战略计划您的战略

答案 1 :(得分:1)

mysql驱动程序jar不在类路径中。

下载并将其复制到类路径中可见的位置。

此处指向official driver

的链接