Java 枚举数据类型中的数据截断错误
我不熟悉JSP和Eclipse 我在JSP页面中有一个组合框,其中如下所示Java 枚举数据类型中的数据截断错误,java,mysql,jsp,servlets,enums,Java,Mysql,Jsp,Servlets,Enums,我不熟悉JSP和Eclipse 我在JSP页面中有一个组合框,其中如下所示 <select name="User_type"> <option value="1">Buyer</option> <option value="2">Seller</option> </select> 这里我的数据库结构是: insert into signup values('"+User_type+"') 在数据库中
<select name="User_type">
<option value="1">Buyer</option>
<option value="2">Seller</option>
</select>
这里我的数据库结构是:
insert into signup values('"+User_type+"')
在数据库中,我的数据类型为enum(用户类型-enum('b','s'))
我的插入查询:
insert into signup values('"+User_type+"')
我的期望是,当选择的输入是买方时,b应该存储在DB中
然而,它说发生了数据截断错误。您的JSP页面为买家发布了
1
,而您的数据库期望出现b
。你没有将1
映射到b
任何地方,你会感到困惑,它不起作用了?请,请!!,停止使用字符串连接和用户提供的值来构建SQL语句,除非您希望程序失败和/或受到攻击。使用PrepareStatement
和参数标记。@Andreas是枚举数据类型,因此我希望“1”映射为“a”,2映射为“b”。我的期望是否错误?是的,您的期望是错误的。为什么您会认为字符串literal'1'
会神奇地映射到字符串literal'a'
。即使您是对的,JSP中也有值1
和2
,但枚举需要'b'
和's'
,因此如果1
映射到'a'
,则,它仍然不起作用。@Andreas很抱歉我的评论有误。它是枚举数据类型,所以我希望“1”映射为“b”,2映射为“s”。当我使用命令(insert into signup values(1))手动插入它时,它被存储为b。您的JSP页面正在为买家发布一个1
,您的数据库需要一个b
。你没有将1
映射到b
任何地方,你会感到困惑,它不起作用了?请,请!!,停止使用字符串连接和用户提供的值来构建SQL语句,除非您希望程序失败和/或受到攻击。使用PrepareStatement
和参数标记。@Andreas是枚举数据类型,因此我希望“1”映射为“a”,2映射为“b”。我的期望是否错误?是的,您的期望是错误的。为什么您会认为字符串literal'1'
会神奇地映射到字符串literal'a'
。即使您是对的,JSP中也有值1
和2
,但枚举需要'b'
和's'
,因此如果1
映射到'a'
,则,它仍然不起作用。@Andreas很抱歉我的评论有误。它是枚举数据类型,所以我希望“1”映射为“b”,2映射为“s”。当我使用命令(insert into signup values(1))手动插入它时,它被存储为b。