在struts的项目中向mysql数据库表中插入记录时浏览器报以下错误:
javax.servlet.ServletException: java.lang.RuntimeException: Data truncated for column 'uid' at row 1
root cause
java.lang.RuntimeException: Data truncated for column 'uid' at row 1
控制台报的错误如下:
java.sql.SQLException: Data truncated for column 'uid' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
这个错误的大概意思是说插入数据时“uid”列的数据被截断,就是插入失败,然后我把插入到“uid”列的数据打出来一看居然是String类型的,而表中定义的是int类型,所以插入不进去。
那么判断一个数据对象是什么类型可以这样做,例如:
String name = "abc-123-def-456";
System.out.println(name .getClass());
控制台输出如下:
class java.lang.String
所以把数据表的列类型更改成varchar就可以了。