java.sql.SQLException : [Microsoft][ODBC Driver Manager] Data source name not found and no default driver

标签 java sql

我有java源,当我运行时,它会写

java.sql.SQLException:[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且没有默认驱动程序 我认为需要 ODBC 驱动程序,但我看不到它。 Java源代码:

   import java.awt.Image;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;


import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import java.sql.*;

import java.awt.*;
import java.io.*;
import javax.swing.*;



import java.awt.image.*;
import java.awt.event.*;



/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class a extends javax.swing.JDialog {
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JLabel jLabel4;

    private JTextField txtPiradi;
    private JTextField txtSaxeli;
    private JTextField txtGvari;
    Image img;
    File file = null;
    String path = "";
    JTextField text = new JTextField(20);
    JButton browse, save;
     Connection conn = null;
     ResultSet rs = null;
     Statement stmt = null;


    /**
    * Auto-generated main method to display this JDialog
    */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame();
                wevrtaDamateba inst = new wevrtaDamateba(frame);
                inst.setVisible(true);
            }
        });
    }

    public wevrtaDamateba(JFrame frame) {
        super(frame);
        initGUI();
    }

    private void initGUI() {
        try {
            {
                getContentPane().setLayout(null);
                this.setTitle("\u10d0\u10ee\u10d0\u10da\u10d8 \u10ec\u10d4\u10d5\u10e0\u10d8\u10e1 \u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0");
                {
                    jLabel1 = new JLabel();
                    getContentPane().add(jLabel1);
                    jLabel1.setText("\u10e1\u10d0\u10ee\u10d4\u10da\u10d8:");
                    jLabel1.setFont(new java.awt.Font("Sylfaen",0,12));
                    jLabel1.setBounds(78, 21, 60, 40);
                }
                {
                    jLabel2 = new JLabel();
                    getContentPane().add(jLabel2);
                    jLabel2.setText("\u10d2\u10d5\u10d0\u10e0\u10d8:");
                    jLabel2.setFont(new java.awt.Font("Sylfaen",0,12));
                    jLabel2.setBounds(78, 67, 60, 40);
                }
                {
                    jLabel3 = new JLabel();
                    getContentPane().add(jLabel3);
                    jLabel3.setText("\u10de\u10d8\u10e0\u10d0\u10d3\u10d8 N:");
                    jLabel3.setFont(new java.awt.Font("Sylfaen",0,12));
                    jLabel3.setBounds(78, 112, 60, 40);
                }
                {
                    jLabel4 = new JLabel();
                    getContentPane().add(jLabel4);
                    jLabel4.setText("\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8:");
                    jLabel4.setFont(new java.awt.Font("Sylfaen",0,12));
                    jLabel4.setBounds(78, 152, 60, 40);
                }
                {
                    txtSaxeli = new JTextField();
                    getContentPane().add(txtSaxeli);
                    txtSaxeli.setBounds(161, 28, 180, 23);
                }
                {
                    txtGvari = new JTextField();
                    getContentPane().add(txtGvari);
                    txtGvari.setBounds(161, 74, 180, 23);
                }
                {
                    txtPiradi = new JTextField();
                    getContentPane().add(txtPiradi);
                    txtPiradi.setBounds(161, 119, 180, 23);
                }
                {
                    browse = new JButton();
                    getContentPane().add(browse);
                    browse.setText("\u10e1\u10e3\u10e0\u10d0\u10d7\u10d8\u10e1 \u10d0\u10e0\u10e9\u10d4\u10d5\u10d0");
                    browse.setBounds(161, 159, 180, 23);
                    browse.setFont(new java.awt.Font("Sylfaen",0,12));
                    browse.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            JFileChooser chooser = new JFileChooser();
                            chooser.addChoosableFileFilter(new ImageFileFilter());
                            int returnVal = chooser.showOpenDialog(null);

                            if (returnVal == JFileChooser.APPROVE_OPTION) {
                                file = chooser.getSelectedFile();
                                path = file.getPath();
                                ImageIcon icon = new ImageIcon(path);
                                // label.setIcon(icon);
                                text.setText(path);
                                repaint();
                            }
                        }
                    });
                }
                {
                    save = new JButton();
                    getContentPane().add(save);
                    save.setText("\u10d3\u10d0\u10db\u10d0\u10e2\u10d4\u10d1\u10d0");
                    save.setBounds(173, 224, 123, 23);
                    save.setFont(new java.awt.Font("Sylfaen",0,12));
                    save.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                            try {
                                File f = new File(path);
                                String saxeli = txtSaxeli.getText();
                                String gvari = txtGvari.getText();
                                int piradi = Integer.parseInt(txtPiradi.getText());
                                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                                conn = DriverManager.getConnection("jdbc:odbc:Base","","");
                                PreparedStatement psmnt = conn
                                        .prepareStatement("insert into user('saxeli','gvari','piradi','img') values (?,?,?,?)");
                                FileInputStream fis = new FileInputStream(f);
                                psmnt.setString(1, saxeli);
                                psmnt.setString(2, gvari);
                                psmnt.setInt(3, piradi);
                                psmnt.setBinaryStream(4, (InputStream) fis,
                                        (int) (f.length()));
                                int s = psmnt.executeUpdate();
                                JOptionPane.showMessageDialog(null,
                                        "Inserted successfully!");
                            } catch (Exception ex) {
                                System.out.print(ex);
                            }

                        }

                    });
                }
            }
            this.setSize(665, 346);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    protected void clear() {
        // TODO Auto-generated method stub

    }

    class ImageFileFilter extends javax.swing.filechooser.FileFilter {
        public boolean accept(File file) {
            if (file.isDirectory())
                return false;
            String name = file.getName().toLowerCase();
            return (name.endsWith(".jpg") || name.endsWith(".png") || name
                    .endsWith(".gif"));
        }

        public String getDescription() {
            return "Images (*.gif,*.bmp, *.jpg, *.png )";
        }
    }

}

最佳答案

检查 ODBC 数据源面板中是否有Base ODBC 数据源。

关于java.sql.SQLException : [Microsoft][ODBC Driver Manager] Data source name not found and no default driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15652974/

相关文章:

java - 在跳过要求使用 Scanner 输入字符串的行之前出现 StringIndexOutOfBoundsException

java - 在投影中对大小数组进行除法运算来编写聚合查询的方法

php - sql注入(inject)登录表单错误

mysql - 从 hbs 到 MySQL Express js 的多次插入

SQL 全外连接 WITH/Coalesce

java - 使用 validator 针对 xsd 验证soap xml

java - 如何在DynamoDB中基于HashKey和range Key做Query?

sql - "INSERT INTO tab SELECT * FROM another_tab"的 UPSERT

java - Spring ws - 每个属性都返回 null

mysql - 仅当两行(不是任一行)都满足时才选择条件