连接数据库

时间:2011-06-03 09:06:29

标签: java mysql database forms button

任何人都可以帮我如何将我的java表单连接到我的mysql数据库吗? 我有以下代码,但它不起作用......

private void saveActionPerformed(java.awt.event.ActionEvent evt) {                                        

    String value1 = textField1.getText();
    String value2 = textField2.getText();
    String value3 = textField3.getText();
    String value4 = textField4.getText();
    Connection con = null;
    String url = "jdbc:mysql://localhost:3306/Marketing";
    String driver = "com.mysql.jdbc.Driver";
    String db = "Marketing";
    String user = "root";
    String pass = "";
    System.out.println(value1 + value2 + value3 + value4);
    try {
        Class.forName(driver);
        con = DriverManager.getConnection(url + db, user, pass);
        PreparedStatement st = con.prepareStatement("insert into clients (idclients,    name, address, contact_person, contact_num) values(?,?,?,?,?)");
        st.setString(2, value2);
        st.setString(3, value3);
        st.setString(4, value4);
        st.executeUpdate();
        JOptionPane.showMessageDialog(jPanel1, "Data is successfully inserted into database.");
        con.close();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(jPanel1, "Error in submitting data!");
    }
}                     

3 个答案:

答案 0 :(得分:2)

我可以立即看到的一个问题是你的PreparedStatement需要5个参数(1 - 5)但你只设置3个! 其次,当您的数据库URL已包含数据库名称时,我不确定为什么使用DriverManager.getConnection(url + db ,...),因此只使用DriverManager.getConnection(url,user,pass)。 尽管如此,如果你能澄清究竟什么不起作用会很好吗?

答案 1 :(得分:1)

连接代码存在问题:

url = jdbc:mysql://localhost:3306/Marketing
db  = Marketing

url + db = jdbc:mysql://localhost:3306/MarketingMarketing 

在这里你必须删除一个额外的营销

答案 2 :(得分:1)

错误在此声明中:

 con = DriverManager.getConnection(url + db, user, pass);

getConnection方法连接到1st参数中指定的url上的数据库。在这里,您组合了两个名为urldb的变量,因此您的连接网址将变为:jdbc:mysql://localhost:3306/MarketingMarketing,这可能不是您想要的。仅使用url代替url + db