复选框在数据库中存储的新思路

经常会遇见这么一个情况,需求中有:

爱好: 篮球 ☑ 足球 ☑ 羽毛球 ☑

 

在数据库中,你可以区分为三列,分别是篮球、足球、羽毛球,值就存trueORfalse

 

今天提供一个新的思路给大家,

 

篮球=2 足球=4 羽毛球=8

数据库中存选中的选项的值的和。

 

如我选择了篮球、足球,则值的和为:6

 

然后再次编辑的时候,只要拿6分别和选项做与运算, 结果大于0则说明选择了,等于0则说明未选择。

 

原理解析:

其实很简单,就是最常用的与运算,

比如羽毛球, 8 换算为二进制为:1000, 6换算为二进制为:0110。

 

 1 0 0 0      

———— =  0000

 0 1 1 0

 

而 2的二进制为 0010

 

 0 0 1 0      

———— =  0010 = 十进制的2 > 0

 0 1 1 0

 

总结:

优点在于减少了很多代码量,很灵巧的解决了问题。

缺点在于数据库中的值,不能清晰的显示出用户选择了什么。

大家根据自己的需求,可以继续完善算法,我这里只是提供一个小思路。

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要获取复选框的值并提交到数据库,你可以使用以下步骤: 1. 在 JSP 页面,使用 HTML 表单创建复选框,并为每个复选框指定一个唯一的名称和值,例如: ```html <form action="submit.jsp" method="post"> <input type="checkbox" name="hobby" value="reading"> 阅读 <input type="checkbox" name="hobby" value="music"> 音乐 <input type="checkbox" name="hobby" value="sports"> 运动 <input type="submit" value="提交"> </form> ``` 2. 在提交表单的 JSP 页面,使用 request.getParameterValues() 方法获取复选框的值,该方法返回一个字符串数组,其包含所有被选复选框的值。例如: ```jsp <% String[] hobbies = request.getParameterValues("hobby"); if (hobbies != null && hobbies.length > 0) { // 将复选框的值插入到数据库 // ... } %> ``` 3. 将复选框的值插入到数据库,可以使用 JDBC 进行操作。例如: ```jsp <% Connection conn = null; PreparedStatement stmt = null; try { // 获取数据库连接 conn = ...; // 插入数据 String sql = "INSERT INTO user_hobby (user_id, hobby) VALUES (?, ?)"; stmt = conn.prepareStatement(sql); for (String hobby : hobbies) { stmt.setInt(1, userId); stmt.setString(2, hobby); stmt.executeUpdate(); } } catch (SQLException e) { // 处理异常 } finally { // 关闭资源 if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } %> ``` 注意:上述代码只是示例,实际应用需要根据具体业务逻辑进行修改和优化。同时,为了安全起见,也需要对用户输入进行合法性检查和过滤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值