【问题标题】:I need to add another column in my database but I don't know how to我需要在我的数据库中添加另一列,但我不知道如何
【发布时间】:2016-12-09 18:53:58
【问题描述】:

我想通过使用 java 或在 mysql 应用程序中手动在 mysql 中添加另一列。这是我的 java 代码,我需要添加一个名为 book_id 的列

package liblog;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;


public class AStudents extends JFrame {
private JTextField admissionnumber;
 private JTextField firstname;
 private JTextField lastname;
 private JTextField surname;
 private JTextField house;
 private JTextField dome;
 private JButton add;
 private JButton back;
 private static Connection conn;

 JFrame frame = new JFrame();
 ImageIcon icon = new ImageIcon("C:/Users/User/workspace/Login/src/liblog/parklands.png");
 JPanel panel = new JPanel(new GridBagLayout());
 JPanel panel2 = new JPanel();
 JPanel panel3 = new JPanel();
 JLabel admissionNumber = new JLabel();
 JLabel firstName = new JLabel();
 JLabel lastName = new JLabel();
 JLabel surName = new JLabel();
 JLabel mainHouse = new JLabel();
 JLabel mainDome = new JLabel();

 AStudents(){
     super("DR.RIBEIRO PARKLANDS SCHOOL");
     setLayout(new FlowLayout(FlowLayout.LEFT,3,100));
     setBounds(500,500,550,550);
     setLocation(500,200);
     setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     Container con = this.getContentPane();
     con.setBackground(Color.GRAY);
     con.add(panel);
     panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
     panel2.setLayout(new FlowLayout(FlowLayout.CENTER,3,10));/*X axis,Y axis*/
     panel3.setLayout(new BoxLayout(panel,BoxLayout.LINE_AXIS));
     panel.setBackground(Color.GRAY);

    /* admissionNumber=new JLabel("Admission Number");
     admissionNumber.setAlignmentX(0.0f);
     admissionnumber = new JTextField("No",30);
     admissionnumber.setAlignmentX(0.0f);*/

     firstName=new JLabel("First Name");
     firstName.setAlignmentX(0.0f);
     firstname = new JTextField("Name",20);
     firstname.setAlignmentX(0.0f);

     lastName=new JLabel("Last Name");
     lastName.setAlignmentX(0.0f);
     lastname = new JTextField("Name",20);
     lastname.setAlignmentX(0.0f);

     surName=new JLabel("Surname");
     surName.setAlignmentX(0.0f);
     surname = new JTextField("Name",20);
     surname.setAlignmentX(0.0f);

     mainHouse=new JLabel("House");
     mainHouse.setAlignmentX(0.0f);
     house = new JTextField("House",20);
     house.setAlignmentX(0.0f);

     mainDome=new JLabel("Dome");
     mainDome.setAlignmentX(0.0f);
     dome = new JTextField("Dome",20);
     dome.setAlignmentX(0.0f);


     add = new JButton("Add Student");
     back = new JButton("Back");

     add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // Insert into SQL:
            try {
                PreparedStatement insert = conn.prepareStatement("INSERT INTO students (first_name, last_name, surname, house, dome) VALUES (?,?,?,?,?)");
                insert.setString(1, firstname.getText());
                insert.setString(2, lastname.getText());
                insert.setString(3, surname.getText());
                insert.setString(4, house.getText());
                insert.setString(5, dome.getText());

                insert.execute();
                ABooks abooks = new ABooks();
                dispose();
            }
            catch(Exception ex) {
                System.out.println(ex);
            }

        }
    });

    back.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Admin admin = new Admin();
            dispose();
        }
    });

     //panel.add(admissionNumber);
     //panel.add(admissionnumber);

     panel.add(firstName);
     panel.add(firstname);

     panel.add(lastName);
     panel.add(lastname);

     panel.add(surName);
     panel.add(surname);

     panel.add(mainHouse);
     panel.add(house);

     panel.add(mainDome);
     panel.add(dome);



     panel.add(add);
     panel.add(back);

 try {
      conn = getConnection();
    createTable();
 }
 catch(Exception ex) {
     System.out.println(ex);

 }
 setVisible(true);
 }

 /*public static void main(String[]args) throws Exception{new AStudents();
    createTable();
}*/

 //Table
 public static void createTable() throws Exception{
        try{
            Connection conn = getConnection();
            PreparedStatement create = conn.prepareStatement("CREATE TABLE IF NOT EXISTS students(id int NOT NULL AUTO_INCREMENT,first_name varchar(45),last_name varchar(45),surname varchar(320),house varchar(50),dome varchar(50),book_id varchar(50),PRIMARY KEY(id))");
            create.executeUpdate();
        }catch(Exception e){System.out.println(e);}
        finally {
            System.out.println("System Updated");};
    }
 //EndofTable

 //DB
 public static Connection getConnection() throws Exception{

        try{
            String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://localhost:3306/students?useSSL=false";
            String username = "root";
            String password = "toor";
            Class.forName(driver);

            Connection conn =     DriverManager.getConnection(url,username,password);
            System.out.println("Connected");
            return conn;
        }catch(Exception e){
            System.out.println(e);
        }
        return null;
    }
 //DB
     }

应用程序给了我以下我无法摆脱的错误 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中的未知列“borrow_id”

这是另一个代码http://www.rapidtables.com/tools/notepad.htm

【问题讨论】:

  • 我在任何代码中都没有看到 borrow_id。你确定这是抛出错误的代码集吗?
  • 不清楚哪一行会引发此异常。您的代码中没有book_id。指出引发异常的行。
  • rapidtables.com/tools/notepad.htm 大约一个月前我编写了代码,由于我对 Java 几乎不熟悉,所以我已经忘记了所有内容。这是我的另一个代码
  • 那么,是borrow_id 还是book_id?是什么阻止您在 MySQL 客户端中添加列?您是否真的需要添加列或更改代码以使用正确的列名?
  • 这是借书ID,因为我需要从图书馆借书。我需要输入正确的代码,将“borrow_id”添加到数据库中。

标签: java mysql swing


【解决方案1】:

在您的 SQL 数据库中:

ALTER TABLE students ADD book_id varchar(50)

我在猜测 book_id 的数据类型。

你的意思是 book_id 还是 borrow_id?我在您的代码中没有看到borrow_id,这有点令人困惑,这可能是您被否决的原因。

【讨论】:

  • 非常感谢。你是唯一理解我要求的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
相关资源
最近更新 更多