Olá, boa tarde.
Já estou a dois dias tentando fazer com que minha aplicação grave os dados em uma tabela JTable.
Toda vez que eu mando executar a insersão dos dados me retorna o seguinte erro.
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value adjusted for column 'codigo' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
at com.mysql.jdbc.Statement.execute(Statement.java:695)
at hfuniformes.Vendas.jBTadicionarActionPerforme(Vendas.java:598)
at hfuniformes.Vendas.access$5(Vendas.java:580)
at hfuniformes.Vendas$6.actionPerformed(Vendas.java:317)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5501)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5266)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3968)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Segue o código fonte da aplicação (uma parte).
private void jBTadicionarActionPerforme(java.awt.event.ActionEvent evt) throws SQLException {//GEN-FIRST:event_jInclFornecedorActionPerformed
try{
String incluirtabela;
String classpath = "mysql-connector-java-5.0.4-bin.jar";
String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);
String url = "jdbc:mysql://localhost:3306/hiroko";
String username = "administrador";
String password = "123456";
Connection con= DriverManager.getConnection(url, username, password);
int row = jTable1.getSelectedRow();
incluirtabela = ("insert into listavendas ( quantidade, produto, descricao, valorunitario, valortotal, codigo) values ( '"+ modelo.getValueAt(row,0) +"', '"+ modelo.getValueAt(row,1) +"','"+ modelo.getValueAt(row,2) +"','"+ modelo.getValueAt(row,3) +"','"+ modelo.getValueAt(row,4) +"','"+ modelo.getValueAt(row,5) +"')");
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(incluirtabela);
modelo.addRow(new Object[]{null, null, null, null, null, null});
boolean rs = stmt.execute(incluirtabela);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this,"Passou pelo ClassNotFoundException");
}
//modelo.addRow(new Object[]{null, null, null, null, null, null});
}
e por fim o código do SQL
CREATE TABLE `hiroko`.`listavendas` (
`quantidade` double default NULL,
`produto` varchar(25) default NULL,
`descricao` varchar(100) default NULL,
`valorunitario` double default NULL,
`valortotal` double default NULL,
`codigo` int(10) unsigned default NULL,
`id` int(10) unsigned default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Desde já agradeço a ajuda.