Fill textbox input in db?

I am coding a CRUD app and want to fill my textbox input into the db, but I get an exception:

Here is my method:

public void create(Produkt p) {
    if(p==null) {
        log.error("Erstellen von null-Objekt in DB nicht möglich");
        throw new IllegalArgumentException("Erstellen von null-Objekten in der DB nicht möglich");
    }
    if(p.getName().length()>30) {
        log.error("Produktname zu lang!");          
    }
    PreparedStatement ps=null;

    try {
        ps = hsqlmanager.getConnection().prepareStatement("INSERT INTO Produkt(name, kategorie, geloescht, haltbar, preis, altersfreigabe, bild) VALUES(?, ?, ?, ?, ?, ?, ?);");
    } catch (SQLException e1) {
        log.error("Es konnte keine Verbindung hergestellt werden im DAOProdukt!");
        e1.printStackTrace();
    }
    try {
        //TODO
        ps.setString(1, p.getName());
        ps.setString(2, p.getKategorie());
        ps.setBoolean(3, p.isGeloescht());
        ps.setBoolean(4, p.isHaltbar());
        ps.setDouble(5, p.getPreis());
        ps.setBoolean(6, p.isAltersfreigabe());
        ps.setString(7, p.getBild());
        System.out.println(p.getName() + p.getKategorie() + p.getPreis() + p.getBild() + p.isGeloescht() + p.isGeloescht() + p.isHaltbar());
        ps.execute();//here I get the Exception
        ps.close();

        log.info("Produkt in DB erstellt.");
    }
    catch (SQLException e) {
        log.error("createtes Produkt konnte nicht gespeicher werden - SQLFehler: " + e.toString());
        e.printStackTrace();
    }
}

Here is where I fill in the textbox:

                String name=textBoxes.get(0).getText();
                if(name.trim().isEmpty()) {
                    name="NO NAME ADDED!";
                } else{
                    name = textBoxes.get(0).getText();
                }

I guess it has to do with the name, beacause the exception says something like that:

Java.sql.SQLDataException: data exception: string data, right truncation
  at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
  at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
  at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
  at org.hsqldb.jdbc.JDBCPreparedStatement.execute(Unknown Source)
  at dao.DAOProdukt.create(DAOProdukt.java:50)
  at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
  at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
  at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
  at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
  at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown

Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Nati ve Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

So what does that mean? The exception points to the ps.execute(); but I am using the right type? Why?

链接地址: http://www.djcxy.com/p/73430.html

上一篇: MouseAdapter类

下一篇: 填充文本框输入db?