我想要更改数据库中项目的可用性。
<td><select name="avl">
<option value="1" name="true ">Available</option>
<option value="0" name="false">Unavailable</option>
</select>
</td>
下面是我用来更新字段的sql语句。
<sql:update dataSource="${dbsource}" var="count">
UPDATE restaurant SET available = ? WHERE idrestaurant ='${param.id}'
<sql:param value="${param.avl}" />
</sql:update>
我的可用字段的数据类型是BIT。
但是我得到了这个错误。
警告: servlet jsp的StandardWrapperValvejsp: Servlet.service()引发了异常com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncation:数据对于第1行的列'available‘来说太长
发布于 2013-12-06 03:07:14
我在MySQL中使用BIT
的方式和你一样。我知道这与你的情况有点不同,但希望它能有所帮助。
我有一个专栏:
NAME:PUBLISHED | DATATYPE:BIT
这可以通过页面上的按钮进行切换。
<li sec:authorize="hasRole('ROLE_ADMIN')">
<a th:href="@{'/administration/'+*{postId} + '/publish'}" th:text="*{postMetaData.published} ? 'unpublish' : 'publish'">publish</a>
</li>
上面映射的控制器调用服务中的以下方法:
public boolean togglePublishPost(int postId){
Post post = postRepo.findOne(postId);
if(post.isPublished()){
post.setPublished(false);
}else{
post.setPublished(true);
post.setPublishDate(new Date());
}
postRepo.save(post);
return post.isPublished();
}
就像我说的,这是不同的,但看起来我们似乎在努力实现同样的目标。所以,我猜简而言之,可以用true
和false
来更新BIT
。
https://stackoverflow.com/questions/20406976
复制相似问题