首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在java-netbeans中将文本框中的数据插入mysql数据库

如何在java-netbeans中将文本框中的数据插入mysql数据库
EN

Stack Overflow用户
提问于 2013-08-28 20:54:09
回答 4查看 91.4K关注 0票数 2

我是编程新手,我正在尝试使用netbeans IDE制作一个小型Java swing应用程序,我已经设计了表单并创建了一个表,我使用以下代码将数据从表单插入到数据库中,但我收到了许多错误,请帮助我更正此代码:

代码语言:javascript
代码运行次数:0
运行
复制
import java.sql.*;
public class db
{
  static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
  static final String DB_URL = "jdbc:mysql://localhost:3306/userdb";
  static final String USER="root";
  static final String PASS="toor";

  Connection conn = null;
  Statement stmt = null;
  static final String d_unit=jTextField2.getText();
  static final String d_name=jTextField3.getText();
  static final String d_dob=jDateChooser2.getText();
  //static final String d_gender="gender";
  static final String d_age=jTextField4.getText();
  static final String d_doorno=jTextField5.getText();
  static final String d_street=jTextField6.getText();
  static final String d_vc=jTextField7.getText();
  static final String d_district=jTextField8.getText();
  static final String d_pin=jTextField9.getText();
  static final String d_phone=jTextField10.getText();
  static final String d_mail=jTextField11.getText();
  static final String d_occupations=jTextField12.getText();
  try
  {
     Class.forName("com.mysql.jdbc.Driver");
     conn=DriverManager.getConnection(DB_URL,USER,PASS);
     stmt = conn.createStatement();
     stmt.executeUpdate("insert into donors (unit,name,dob,age,doorno,street,vc,district,pin,phone,mail,occupation) values('"+d_unit+"','"+d_name+"','"+d_dob+"','"+d_age+"','"+d_doorno+"','"+d_street+"','"+d_vc+"','"+d_district+"','"+d_pin+"','"+d_phone+"','"+d_mail+"','"+d_occupations+"')");
     JOptionPane.showMessageDialog(null,"Inserted Successfully!");
     }
    catch(Exception e)
    {     }

   }
EN

回答 4

Stack Overflow用户

发布于 2013-08-28 21:19:48

您可能不会使用final String,因为这样您就不能修改这些字符串,并且其他代码是正确的,但我认为您可以在代码行中使用?

代码语言:javascript
代码运行次数:0
运行
复制
String sql="INSERT INTO ´donors´ (unit,name) VALUES (?,?)";
    //put the rest of the sentence
      try {
        PreparedStatement pdt = cn.prepareStatement(sql);
        pdt.setString(1, jTextField2.getText();
        pdt.setString(2, jTextField3.getText();
        //put the rest of the code
        int n1=pdt.executeUpdate();
      if(n1>0)
      {
      JOptionPane.showMessageDialog(null,"Inserted Successfully!");
      }
      }catch (SQLException ex) { }

好吧,这是最大的方法,但也是最正确的。我希望这能帮到你。

票数 3
EN

Stack Overflow用户

发布于 2014-04-09 01:55:44

代码语言:javascript
代码运行次数:0
运行
复制
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        
    String itemCode = txtItemCode.getText();
    String itemName = txtItemName.getText();
    String unitPrice = txtUnitPrice.getText();
    String qty = txtQty.getText();
    String query = "insert into items values ('"+itemCode+"','"+itemName+"','"+unitPrice+"','"+qty+"')";
    System.out.println(query);


    try {
        Connection c = DBClass.getConnection();
        Statement stmt = c.createStatement();
        stmt.executeUpdate(query);
        JOptionPane.showMessageDialog(this, "Saved");
    } catch (Exception e) {
        e.printStackTrace();
    }

// DBClass

代码语言:javascript
代码运行次数:0
运行
复制
import java.sql.Connection;
import java.sql.DriverManager;

/**
 *
 * @author Nadun
 */
public class DBClass {

    static private Connection  connection;

    public static Connection getConnection() throws Exception{
        if(connection == null){
            //JDBC
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/stock", "root", "123");
        }
        return connection;
    }

}
票数 1
EN

Stack Overflow用户

发布于 2017-03-26 00:36:03

一切看起来都很好。也许问题出在你的mysql数据库上?

在mysql中检查行的数据类型,如果当前行的数据类型是"int",那么应该是这样的

代码语言:javascript
代码运行次数:0
运行
复制
try
{
 Class.forName("com.mysql.jdbc.Driver");
 conn=DriverManager.getConnection(DB_URL,USER,PASS);
 stmt = conn.createStatement();
 stmt.executeUpdate("insert into donors (name, age) values('"+d_name+"',,'"+Integer.valueOf(d_age.getText().toString())+"')");
 JOptionPane.showMessageDialog(null,"Inserted Successfully!");
 }
catch(Exception e){     }

}

您应该小心使用数据类型。如果您的mysql行是int类型,那么在java中,您也应该为它指定int时间。

我猜"name“行的数据类型是使用字符串的文本,而"age”行的数据类型是int?

我检查您的代码是否将java中的字符串值提供给int mysql行。这就是错误所在。

因此,您应该首先将字符串转换为int

代码语言:javascript
代码运行次数:0
运行
复制
Integer.valueOf(d_age.getText().toString());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18488519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档