我是靠谱客的博主 包容月亮,最近开发中收集的这篇文章主要介绍java给复选框赋值_【Java Web】列名多选表的0、1赋值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前台部分代码:

多选项:

First  

Second  

Third  

Fourth  

Firth

数据库 T_TABLE 表结构:

列名

类型

长度

小数点

不是null

主键

TABLE_ID

int

11

0

1

TABLE_COLUMN_FIRST

int

1

0

TABLE_COLUMN_SECOND

int

1

0

TABLE_COLUMN_THIRD

int

1

0

TABLE_COLUMN_FOURTH

int

1

0

TABLE_COLUMN_FIRTH

int

1

0

需求说明:

选中多选项,选中的项在数据库中赋值为1,否则为0。

注意事项:

1. input 或者 select 的 name 的值使用“.trim().toLowerCase()”后与表的列名使用“.trim().toLowerCase()”后必须相同,如列名“TABLE_COLUMN_FIRST”和 name 值"table_column_first"。

2. 后台获取到的前台多选项数据格式如果为“String, String, String, ……”,可使用“String.split(",")”后再调用“getColumnsValueByTableName”方法,或者重写“getColumnsValueByTableName”方法,更换参数 String 数组为 String 字符串,将此操作放在方法中执行。

3. 调用方法后返回 int 数组,就可以从中取值(例如“columnsInts[0]”)并进行添加操作了

代码实现:

package com.duanluan.Util;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import org.hibernate.Session;

import org.hibernate.cfg.Configuration;

/**

* 数据库操作类

*

* @author 断乱

*/

public class DatabaseOperation {

/**

* 列名多选表的0、1赋值

* @param tableName

* 表名

* @param columnsStrings

* 从前台传递过来的多选 Value String 数组

* @return 赋值之后的0、1 int 数组

* @throws Exception

*

* @author 断乱

*/

public static int[] getColumnsValueByTableName(String tableName, String[] columnsStrings) throws Exception {

// SQL 语句(适用于MySQL)

String sql = "select COLUMN_NAME FROM information_schema.columns where table_name = ?";

// 获取 Session

Session session = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory().openSession();

// 获取 Connection,自行修改,此处使用 Hibernate(Hibernate 3.3.2之前)

@SuppressWarnings("deprecation")

Connection connection = session.connection();

// 获取 PreparedStatement

PreparedStatement prepareStatement = connection.prepareStatement(sql);

// 设置 PreparedStatement 参数

prepareStatement.setString(1, tableName);

// 执行 SQL 语句,并获取列名结果集

ResultSet resultSet = prepareStatement.executeQuery();

// 列名集合

ArrayList columnList = new ArrayList();

// 将结果集转换为集合

while (resultSet.next()) {

columnList.add(resultSet.getString("COLUMN_NAME").trim().toLowerCase());

}

// 移除集合的第一个元素,即序列(例如上文表结构中的“TABLE_ID”),因为此项一般不赋值,自动序列

columnList.remove(0);

// 赋值之后的0、1 int 数组

int[] columnsInts = new int[columnList.size()];

// 判断列名是否存在

for (int i = 0; i < columnList.size(); i++) {

for (int j = 0; j < columnsStrings.length; j++) {

// 如果列名中存在

if (columnList.get(i).equals(columnsStrings[j].trim().toLowerCase())) {

// int 数组赋值为1

columnsInts[i] = 1;

// 结束当前循环,此处也可为 For 循环命名,使用“continue [循环名];”跳出

break;

}

}

}

// 关闭所有对象,未进行是否为空判断

resultSet.close();

prepareStatement.close();

connection.close();

session.close();

// 返回赋值之后的0、1 int 数组

return columnsInts;

}

最后

以上就是包容月亮为你收集整理的java给复选框赋值_【Java Web】列名多选表的0、1赋值的全部内容,希望文章能够帮你解决java给复选框赋值_【Java Web】列名多选表的0、1赋值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部