ошибка: усечение данных при вставке в таблицу - PullRequest
1 голос
/ 02 октября 2009

я пытаюсь вставить значение в таблицу, передав значение в функцию как это:

public void insert(long r,String s_n,char sex,String sf_n,String sm_n,int c,char sec,long tel,long amount,String add,int age,String house)
    {
        try{
            this.ps=this.con.prepareStatement("insert into s_table values(?,?,?,?,?,?,?,?,?,?,?,?);");
            this.ps.setLong(1,r);
            this.ps.setString(2,s_n);
            this.ps.setObject(3,sex,java.sql.Types.CHAR);
            this.ps.setString(4,sf_n);
            this.ps.setString(5,sm_n);
            this.ps.setInt(6,c);
            this.ps.setObject(7,sec,java.sql.Types.CHAR);
            this.ps.setLong(8,tel);
            this.ps.setLong(9,amount);
            this.ps.setString(10,add);
            this.ps.setInt(11, age);
            this.ps.setString(12,house);
            this.ps.executeUpdate();
            this.ps.close();
            con.close();
        }catch(SQLException e){System.out.println("The statement is not established while inserting the element bco'z of "+e.getMessage());
        e.printStackTrace();}
    }

Модель страницы jsp:

но это показывает ошибку усечения данных. alt text К вашему сведению: соединение установлено

1 Ответ

0 голосов
/ 23 июля 2014

Как сказано в комментариях, это должно быть из-за размера ваших столбцов.

Я думаю, что вы нашли решение, и вы не назвали свой вопрос "ответом", но я думаю, что это может быть полезно для людей, которые могут иметь эту проблему. Вот мой ответ.

Здесь SQL-код, который может быть вашим, varchar (x) позволяет вам без проблем иметь строку x char:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET NAMES utf8 */;
--
-- BDD: `test2`
--

-- --------------------------------------------------------

--
-- Structure of the table `s_table`
--

CREATE TABLE IF NOT EXISTS `s_table` (
  `r` bigint(20) NOT NULL AUTO_INCREMENT,
  `s_n` varchar(200) NOT NULL,
  `sex` int NOT NULL,
  `sf_n` varchar(200) NOT NULL,
  `sm_n` varchar(200) NOT NULL,
  `c` int(11) NOT NULL,
  `sec` int NOT NULL,
  `tel` bigint(20) NOT NULL,
  `amount` bigint(20) NOT NULL,
  `address` varchar(2000) NOT NULL,
  `age` int(11) NOT NULL,
  `house` varchar(300) NOT NULL,
  PRIMARY KEY (`r`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Если есть что-то еще, просто спросите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...