JAVA 1.7和Mysql 5.7连接

问题描述:

我安装了Java jdk1.7xxx并安装了MySQL数据库v5.7。 我的数据库被命名为“mydb”。 我从mysql控制台访问它。JAVA 1.7和Mysql 5.7连接

但是,当我尝试从我的Java程序访问它时,它会产生一个错误“未知数据源或未指定试点名称”。所以我想念一些飞行员/额外的文件。但我确实进口的java.sql *在我的节目的开始..

import javax.swing.*; 
import java.awt.BorderLayout; 
import java.awt.Container; 
import java.awt.Dimension; 
import java.awt.event.*; 
import java.sql.SQLException; 
import java.util.ArrayList; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.*; 
import java.sql.*; 
import java.util.*; 


public class DPIA_impacts extends JFrame { 
    // Labels 
    JLabel lb_title; 
    JTable tableau = null; 
    static JPanel p_global, p_title, p_center, p_south; 
    JScrollPane scroll=null; 
    JButton btn_Save, btn_Export; 
    //DefaultTableModel model; 
ArrayList t1=new ArrayList(); 
ArrayList t2=new ArrayList(); 
ArrayList t3=new ArrayList(); 


public DPIA_impacts(){ 
    //declarations 
    p_global = new JPanel(); 
    p_title = new JPanel(); 
    p_center = new JPanel(); 
    p_south = new JPanel(); 
    lb_title = new JLabel("DPIA meeting: fill the table !"); 
    btn_Save = new JButton("Save"); 
    btn_Export = new JButton("Export"); 
    scroll = new JScrollPane(); 
    // add tool tip text to the Save and Export buttons 
    btn_Save.setToolTipText("Save to the database Impacts table"); 
    btn_Export.setToolTipText("Exports the contents of the Jtable to an Excel file"); 
    // add Action Listener to the buttons 
    btn_Save.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e){ 
      //Execute when button is pressed 
      System.out.println("You clicked the button SAVE"); 
      String url = "jdbc:mysql://localhost/mydb"; 
      String login = "root"; 
      String passwd = "toor"; 
      Connection cn = null; 
      Statement st = null; 

      try { 
       //chargement du driver 
       Class.forName("com.mysql.jdbc.Driver"); 
       // Recup connexion 
       cn = DriverManager.getConnection(url, login, passwd); 
       // Creation d'un statement 
       st = cn.createStatement(); 
       String sql = "SELECT * FROM impacts"; 
       st.executeUpdate(sql); 

       //instruction.executeQuery(req); 
      } // Try 
      catch (SQLException ex) 
      { 
       System.out.println("Connexion à la base de données impossible"); 
       ex.printStackTrace(); 
      } 
      catch(ClassNotFoundException ex) 
      { 
       System.out.println("Pilote de connexion introuvable"); 
       ex.printStackTrace(); 
      //}//end catch 
      } finally { 
       try{ 
        cn.close(); 
        st.close(); 
       } catch (SQLException sqle){ 
        sqle.printStackTrace(); 
       } 
      } 
    }}); 
    btn_Export.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e){ 
      //Execute when button is pressed 
      System.out.println("You clicked the button EXPORT"); 
     } 
    }); 
    //add the components to the righ panels 
    p_title.add(lb_title); 
    p_center.add(scroll);  
    p_south.add(btn_Save, BorderLayout.WEST); 
    p_south.add(btn_Export, BorderLayout.EAST); 

    String req = "SELECT * FROM impacts"; 
    int i =0; 

    Connect resultat = new Connect(req,1,"BaseDeDonnees"); 

    // connexion a la base de donnees 
}//end constructor 

public static void main(String args[]) { 
    //Create and set up the window. 
    DPIA_impacts f = new DPIA_impacts(); 
    f.setTitle("DPIA: check the impacts"); 
    //f = new JFrame("DPIA: Impacts"); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    //Set up the content pane 

f.getContentPane().setLayout(new BorderLayout()); 
f.getContentPane().add(p_title, BorderLayout.PAGE_START); 
f.getContentPane().add(p_center, BorderLayout.CENTER); 
f.getContentPane().add(p_south, BorderLayout.PAGE_END); 
f.pack(); 
f.setSize(500, 300); 
f.setVisible(true); 
}//end main 

}//end programm ! 

screenshot Error

添加JAR:

add the jar doesn't solve the issue

+0

请问您可以添加完整的错误日志吗? @tom – SkyWalker

+1

@SkyWalker:完成,截图添加 – tom

+0

不要使用屏幕截图,当文本会做(您可以从命令行复制文本)。 –

我认为,在String url = "jdbc:mysql://localhost/mydb"; 你忘了编写端口号。 尝试String url ="jdbc:mysql://127.0.0.1:3306/mydb";

UPDATE

好吧,只是试试这个代码和Eclipse中运行它,而不是从CMD。 您还可以使用executeUpdate代替INSERT。对于SELECT,您使用executeQuery

//Execute when button is pressed 
      System.out.println("You clicked the button SAVE"); 
      String url = "jdbc:mysql://127.0.0.1:3306/mydb"; 
      String login = "root"; 
      String passwd = "toor"; 
      Connection cn = null; 
      Statement st = null; 
      ResultSet rs = null; 
      System.out.println("Connecting to database.."); 
      try { 

       cn = DriverManager.getConnection(url, login, passwd); 
       System.out.println("Database Connected"); 
       st = cn.createStatement(); 
       String sql = "SELECT * FROM impacts"; 
       rs = st.executeQuery(sql); 
       while (rs.next()){ 
        //do something 
       } 


       //instruction.executeQuery(req); 
      } // Try 
      catch (SQLException ex) 
      { 
       System.out.println("Connexion à la base de données impossible"); 
       ex.printStackTrace(); 
      } 
      finally { 
       try{ 
        if (cn != null){ 
         cn.close(); 
         }    
         if (st != null){ 
          st.close(); 
          } 
         if (rs != null){ 
          rs.close(); 
          } 
       } catch (SQLException sqle){ 
        sqle.printStackTrace(); 
       } 
      } 
+0

Hello Ioanna,不幸的是,我得到和以前完全一样的错误 – tom

+0

您是否已将mysql jdbc驱动程序jar添加到您的类路径中? –

+0

hello Ioanna,我试着添加jar,看截图,不工作。也许我没有正确地做... – tom