Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при апдейте данных 
:(
    Опции темы
bulat01
Дата 30.11.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Здравствуйте спецы,
пож-та помогите 

я пытаюсь апдейтить данные через форму
кидает ошибку: 
error: failed to create a connection object.
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'student_number' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3564)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)


Ниже код джава:
Код

public class class1 extends javax.swing.JFrame {
    private JPanel panel_ins_upd;
    private JButton but_cancel;
    private JButton but_insert;
    private JTextField val_attended;
    private JLabel lab_attended;
    private JTextField val_attend_date;
    private JLabel lab_attendance_date;
    private JTextField val_unit_number;
    private JLabel lab_unit_number;
    private JTextField value_student_number;
    private JLabel lab_student_number;

    public Connection conn_ins_upd; 
    /**
    * Auto-generated main method to display this JFrame
    */
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                insert_update inst = new insert_update();
                inst.setLocationRelativeTo(null);
                inst.setVisible(true);
            }
        });
    }
    
    public class1() {
        super();
        initGUI_for_InsUp();
    }
    
    public void initGUI_for_InsUp() {
        try {
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            {
                panel_ins_upd = new JPanel();
                getContentPane().add(panel_ins_upd, BorderLayout.NORTH);
                GroupLayout panel_ins_updLayout = new GroupLayout((JComponent)panel_ins_upd);
                panel_ins_upd.setLayout(panel_ins_updLayout);
                panel_ins_upd.setPreferredSize(new java.awt.Dimension(311, 239));
                {
                    lab_student_number = new JLabel();
                    lab_student_number.setText("Student Number");
                }
                {
                    value_student_number = new JTextField();
                }
                {
                    lab_unit_number = new JLabel();
                    lab_unit_number.setText("Unit Number");
                }
                {
                    lab_attendance_date = new JLabel();
                    lab_attendance_date.setText("Attendance Date");
                }
                {
                    lab_attended = new JLabel();
                    lab_attended.setText("Attended");
                }
                {
                    val_attended = new JTextField();
                }
                {
                    but_insert = new JButton();
                    but_insert.setText("INSERT");
                    but_insert.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent evt) {
                            but_insertActionPerformed(evt);
                        }
                    });

                }
                {
                    but_cancel = new JButton();
                    but_cancel.setText("CANCEL");
                }
                {
                    val_attend_date = new JTextField();
                }
                {
                    val_unit_number = new JTextField();
                }
                panel_ins_updLayout.setHorizontalGroup(panel_ins_updLayout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(panel_ins_updLayout.createParallelGroup()
                        .addGroup(panel_ins_updLayout.createSequentialGroup()
                            .addGroup(panel_ins_updLayout.createParallelGroup()
                                .addComponent(lab_unit_number, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lab_student_number, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lab_attendance_date, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE)
                                .addComponent(lab_attended, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(panel_ins_updLayout.createParallelGroup()
                                .addGroup(panel_ins_updLayout.createSequentialGroup()
                                    .addComponent(val_unit_number, GroupLayout.PREFERRED_SIZE, 172, GroupLayout.PREFERRED_SIZE))
                                .addGroup(panel_ins_updLayout.createSequentialGroup()
                                    .addComponent(value_student_number, GroupLayout.PREFERRED_SIZE, 172, GroupLayout.PREFERRED_SIZE))
                                .addGroup(panel_ins_updLayout.createSequentialGroup()
                                    .addComponent(val_attend_date, GroupLayout.PREFERRED_SIZE, 172, GroupLayout.PREFERRED_SIZE))
                                .addGroup(panel_ins_updLayout.createSequentialGroup()
                                    .addComponent(val_attended, GroupLayout.PREFERRED_SIZE, 172, GroupLayout.PREFERRED_SIZE)))
                            .addGap(0, 0, Short.MAX_VALUE))
                        .addGroup(GroupLayout.Alignment.LEADING, panel_ins_updLayout.createSequentialGroup()
                            .addGap(45)
                            .addComponent(but_insert, GroupLayout.PREFERRED_SIZE, 85, GroupLayout.PREFERRED_SIZE)
                            .addGap(20)
                            .addComponent(but_cancel, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
                            .addGap(0, 42, Short.MAX_VALUE)))
                    .addContainerGap(21, 21));
                panel_ins_updLayout.setVerticalGroup(panel_ins_updLayout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(panel_ins_updLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(value_student_number, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(lab_student_number, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(panel_ins_updLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(val_unit_number, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(lab_unit_number, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 20, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(panel_ins_updLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(val_attend_date, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(lab_attendance_date, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE))
                    .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                    .addGroup(panel_ins_updLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(lab_attended, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE)
                        .addComponent(val_attended, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addGap(48)
                    .addGroup(panel_ins_updLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(but_insert, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 28, GroupLayout.PREFERRED_SIZE)
                        .addComponent(but_cancel, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE))
                    .addContainerGap(64, 64));
            }
            pack();
            this.setSize(321, 266);
        } catch (Exception e) {
            //add your error handling code here
            e.printStackTrace();
        }
    }
    
    private void but_insertActionPerformed(ActionEvent evt) {

                    try {

                      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student_courses", "root", "qaz" );
                      //conn.
                      //System.out.println(conn);
                      Statement stmt = conn.createStatement();
                     
                      //String sql = "insert into attendance5 values (student_number, unit_number, attendance_date, attended)";
                      String sql = "insert into attendance5 values (?, ?, ?, ?, ?)";
                      PreparedStatement pst = (PreparedStatement) conn.prepareStatement(sql);
                      pst.setBoolean(1, false);
                      pst.setString(2, "'"+value_student_number.toString()+"'");
                      pst.setString(3, "'"+val_unit_number.toString()+"'");
                      pst.setString(4, val_attend_date.getText().toString());
                      pst.setString(5, "'"+val_attended.toString()+"'");
                      pst.executeUpdate();
                      pst.close();
             
                      System.out.println("1 rows inserted");
     
                        } catch (SQLException e) {
                          System.out.println("error: failed to create a connection object.");
                          e.printStackTrace();
                        } catch (Exception e) {
                          System.out.println("other error:");
                          e.printStackTrace();
                        }    
                 }
    
    
    public Connection getConn(Connection conn_value){
        return conn_ins_upd = conn_value;
    }
}


описание таблицы:
mysql> desc attendance5;
+-----------------+------------+------+-----+---------+-----------------------+
| Field                    | Type           | Null |      Key   |     Default | Extra |
+-----------------+------------+------+-----+---------+-----------------------+
| bool_val               | tinyint(1)  | NO   |     | NULL    |                       |
| student_number  | char(8)     | NO   |     | NULL    |                       |
| unit_number        | char(6)     | NO   |     | NULL    |                       |
| attendance_date | date         | NO   |     | NULL    |                       |
| attended              | char(1)     | NO   |     | NULL    |                       |
+-----------------+------------+------+-----+---------+-----------------------+
5 rows in set (0.00 sec)

mysql>

PM MAIL   Вверх
skyboy
Дата 30.11.2010, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



проблема в кодировке. 
какой character set для полей таблицы? где SET NAMES <используемая в java кодиовка строк, скорее всего - utf8> первым запросом?

PM MAIL   Вверх
bulat01
Дата 1.12.2010, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 26.10.2010

Репутация: нет
Всего: 0



Спасибо skyboy за ответ,
а как реализовать это в коде?
PM MAIL   Вверх
skyboy
Дата 1.12.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



а где ответ на первый вопрос?
вот так я делаю в PHP:
Код

$mysql_connection->query('SET NAMES utf8');


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.